Add your description here
Project description
Metacoder
A unified interface for command line AI coding assistants (claude code, gemini-cli, codex, goose, qwen-coder)
# Use default coder
metacoder "Write a Python function to calculate fibonacci numbers" -w my-scripts/
...
# list coders
metacoder list-coders
Available coders:
✅ goose
✅ claude
✅ codex
✅ gemini
✅ qwen
✅ dummy
# With a specific coder
metacoder "Write a Python function to calculate fibonacci numbers" -c claude -w my-scripts/
...
# Using MCPs
metacoder "Fix issue 1234" -w path/to/my-repo --mcp-collection github_mcps.yaml
...
# Using coders for scientific QA, with a literature search MCP
metacoder "what diseases are associated with ITPR1 mutations" --mcp-collection lit_search_mcps.yaml
...
Why Metacoder?
Each AI coding assistant has its own:
- Configuration format
- Command-line interface
- Working directory setup
- Means of configuring MCPs
Metacoder provides a single interface to multiple AI assistants. This makes it easier to:
- switch between agent tools in GitHub actions pipelines
- perform matrixed evaluation of different agents and/or MCPs on different tasks
One of the main use cases for metacoder is evaluating semantic coding agents, see:
Mungall, C. (2025, July 22). Open Knowledge Bases in the Age of Generative AI (BOSC/BOKR Keynote) (abridged version). Intelligent Systems for Molecular Biology 2025 (ISMB/ECCB2025), Liverpool, UK. Zenodo. https://doi.org/10.5281/zenodo.16461373
Mungall, C. (2025, May 28). How to make your KG interoperable: Ontologies and Semantic Standards. NIH Workshop on Knowledge Networks, Rockville. Zenodo. https://doi.org/10.5281/zenodo.15554695
Features
- Unified CLI for all supported coders
- Consistent configuration format (YAML-based)
- Unified MCP configuration
- Standardized working directory management
Evaluation Framework
Metacoder includes a comprehensive evaluation framework for systematically testing and comparing AI coders, MCPs, and models.
# Run evaluation suite
metacoder eval tests/input/example_eval_config.yaml
Example evaluation configuration:
name: pubmed tools evals
description: Testing coders with PubMed MCP integration
coders:
claude: {}
goose: {}
models:
gpt-4o:
provider: openai
name: gpt-4
servers:
pubmed:
name: pubmed
command: uvx
args: [mcp-simple-pubmed]
env:
PUBMED_EMAIL: user@example.com
cases:
- name: "title"
metrics: [CorrectnessMetric]
input: "What is the title of PMID:28027860?"
expected_output: "From nocturnal frontal lobe epilepsy to Sleep-Related Hypermotor Epilepsy: A 35-year diagnostic challenge"
threshold: 0.9
Getting Started
- [Installation and Setuphttps://ai4curation.github.io/metacoder/getting-started)
- Supported Coders
- Configuration Guide
- MCP Support - Extend your AI coders with additional tools
- Evaluations - Test and compare AI coders
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file metacoder-0.1.0.tar.gz.
File metadata
- Download URL: metacoder-0.1.0.tar.gz
- Upload date:
- Size: 1.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f5a39d93a830a0cce9d0e975fd3367150fd9ef1988a360f8db1d2084266a656
|
|
| MD5 |
9403b6e77a4d9afa75b4f8a8ab67685f
|
|
| BLAKE2b-256 |
f9ec09b7aa6018dac8f492bf16f54862c6c2114d2d39f05d3f549d3b8beab016
|
Provenance
The following attestation bundles were made for metacoder-0.1.0.tar.gz:
Publisher:
pypi-publish.yaml on ai4curation/metacoder
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
metacoder-0.1.0.tar.gz -
Subject digest:
1f5a39d93a830a0cce9d0e975fd3367150fd9ef1988a360f8db1d2084266a656 - Sigstore transparency entry: 357384273
- Sigstore integration time:
-
Permalink:
ai4curation/metacoder@3f879afb1cc09b36b608e8ffa119cd1878c468d0 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ai4curation
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yaml@3f879afb1cc09b36b608e8ffa119cd1878c468d0 -
Trigger Event:
release
-
Statement type:
File details
Details for the file metacoder-0.1.0-py3-none-any.whl.
File metadata
- Download URL: metacoder-0.1.0-py3-none-any.whl
- Upload date:
- Size: 36.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b765ab0e493969ebe6cf86871e971f092cbc67096379582a422aaa3f6dd542d2
|
|
| MD5 |
899efdbc612abe5249930afab96239c7
|
|
| BLAKE2b-256 |
2b16495f47d2ab6eea1aca3225e549b7389fbf6f3576d15c0aed2926e78b3a95
|
Provenance
The following attestation bundles were made for metacoder-0.1.0-py3-none-any.whl:
Publisher:
pypi-publish.yaml on ai4curation/metacoder
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
metacoder-0.1.0-py3-none-any.whl -
Subject digest:
b765ab0e493969ebe6cf86871e971f092cbc67096379582a422aaa3f6dd542d2 - Sigstore transparency entry: 357384300
- Sigstore integration time:
-
Permalink:
ai4curation/metacoder@3f879afb1cc09b36b608e8ffa119cd1878c468d0 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ai4curation
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yaml@3f879afb1cc09b36b608e8ffa119cd1878c468d0 -
Trigger Event:
release
-
Statement type: