Skip to main content
Augent is open source. Contributions are welcome: bug fixes, new features, documentation improvements.

Submitting a Pull Request

  1. Create a branch from main
  2. Make your changes
  3. Run tests: pytest tests/ -v
  4. Run formatting: black augent/
  5. Push and open a PR against main on AugentDevs/Augent
  6. Fill out the PR template. Describe what you changed and how you tested it
Keep PRs focused. One feature or fix per PR. Small PRs get reviewed faster.

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

  1. Add the tool definition dict to _ALL_TOOLS in mcp.py (name, description, inputSchema)
  2. Add an elif tool_name == "your_tool": branch in handle_tools_call
  3. Write a handle_your_tool(arguments: dict) -> dict function
  4. Use config defaults: from .config import get_config; cfg = get_config() then arguments.get("param", cfg["key"])
  5. If your tool needs a heavy dependency, import it lazily inside the handler
  6. Add tests in tests/ and update the tool count in test_mcp.py
  7. Update CLAUDE.md with usage documentation

Config Integration

User defaults live in augent/config.py. To add a new config key:
  1. Add it to DEFAULTS in config.py
  2. Use cfg["your_key"] as the fallback in your handler’s arguments.get()
  3. 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