Submitting a Pull Request
- Create a branch from
main - Make your changes
- Run tests:
pytest tests/ -v - Run formatting:
black augent/ - Push and open a PR against
mainon AugentDevs/Augent - Fill out the PR template. Describe what you changed and how you tested it
Reporting Issues
Use the structured issue templates on GitHub Issues:- Bug Report: something isn’t working. Include steps to reproduce, expected vs actual behavior, how you’re using Augent (MCP, CLI, Web UI, or Python API), and your OS.
- Feature Request: suggest a new feature. Describe the problem it solves and your proposed solution.
Adding a New Tool
- Add the tool definition dict to
_ALL_TOOLSinmcp.py(name, description, inputSchema) - Add an
elif tool_name == "your_tool":branch inhandle_tools_call - Write a
handle_your_tool(arguments: dict) -> dictfunction - Use config defaults:
from .config import get_config; cfg = get_config()thenarguments.get("param", cfg["key"]) - If your tool needs a heavy dependency, import it lazily inside the handler
- Add tests in
tests/and update the tool count intest_mcp.py - Update
CLAUDE.mdwith usage documentation
Config Integration
User defaults live inaugent/config.py. To add a new config key:
- Add it to
DEFAULTSinconfig.py - Use
cfg["your_key"]as the fallback in your handler’sarguments.get() - Document it in the Configuration guide
Code Style
- Black for formatting (line length 88)
- Ruff for linting (pycodestyle, pyflakes, isort, bugbear)
- Follow existing patterns in the codebase
- Keep functions focused and small
- No unnecessary dependencies

