Contributions are welcome. Imago is designed to be extended — adding a new tool should be the easiest thing you do today.
git clone https://github.com/your-org/imago
cd imago
python -m venv venv && source venv/bin/activate
pip install -e ".[dev]"
pytest tests/-
Does your change add a new tool?
- Create a class in
image_agent/tools/that extendsruntime.tool.Tool - Give it
name,description,parameters, andexecute() - Call
ToolRegistry.register(YourTool())at module level - Add the import to
image_agent/tools/__init__.py - No changes to
cli.py
- Create a class in
-
Does your change add a new core algorithm?
- Place it in
image_agent/core/ - Keep it independent — no imports from tools or runtime
- Use
SUPPORTED_FORMATSfromimage_agent.coreif needed
- Place it in
-
Does your change modify the CLI?
- Add a dispatch handler in
image_agent/cli.py - Register it in the
COMMANDSdict - Keep argument parsing and formatting separate from tool logic
- Add a dispatch handler in
- Type hints on all function signatures
- Docstrings on public classes and methods
- No giant functions (split if >40 lines)
- No tool-to-tool imports (use core layer instead)
pytest tests/tool: short description
core: short description
runtime: short description