Thank you for your interest in contributing to AgenticVision! This document provides guidelines for contributing to the project.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/agentic-vision.git - Create a feature branch:
git checkout -b my-feature - Make your changes
- Run the tests (see below)
- Commit and push
- Open a pull request
This is a Cargo workspace monorepo. All Rust crates are under crates/.
# Build everything (core + MCP server)
cargo build
# Run all tests (core + MCP)
cargo test --workspace
# Core library only
cargo test -p agentic-vision
# MCP server only
cargo test -p agentic-vision-mcp
# Run the MCP server
cargo run -p agentic-vision-mcp -- serve --vision test.avis# Requires release build
cargo build --release
# MCP client tests
python tests/integration/test_mcp_clients.py
# Multi-agent scenario tests
python tests/integration/test_multi_agent.pyFile an issue with:
- Steps to reproduce
- Expected behavior
- Actual behavior
- System info (OS, Rust version)
- Add the tool handler in
crates/agentic-vision-mcp/src/ - Register it in the tools list
- Add tests
- Update the README tool table
- Add a new example in
examples/ - Ensure it runs without errors
- Add a docstring explaining what it demonstrates
All docs are in docs/. Fix typos, add examples, clarify explanations — all welcome.
- Rust: Follow standard Rust conventions. Run
cargo clippyandcargo fmt. - Tests: Every feature needs tests. We maintain 91+ tests across the stack (38 Rust core, 6 MCP integration + multi-agent, 47 Python).
- Documentation: Update docs when changing public APIs.
Use clear, descriptive commit messages:
Add: new vision_annotate toolFix: similarity search edge case with empty storeUpdate: improve CLIP embedding performanceDocs: add Claude Desktop configuration guide
- Keep PRs focused — one feature or fix per PR
- Include tests for new functionality
- Update documentation if needed
- Ensure all tests pass before submitting
- Write a clear PR description
By contributing, you agree that your contributions will be licensed under the MIT License.