antcrew
Multi-agent framework for Python. Typed outputs. Full trace. Works offline.
Three lines to your first agent team, no API key required:
from antcrew import QuickStart
result = QuickStart.dev().run("Build a FastAPI auth service")
print(result.state["prd"].title) # typed PRD artifact
print(result.state["code_artifacts"]) # typed code files
Or from the CLI, fully local with Ollama:
pip install antcrew
antcrew run "Build a FastAPI auth service" --model ollama:llama3
Why antcrew
| antcrew | CrewAI | MetaGPT | |
|---|---|---|---|
| Typed output contracts | ✓ Pydantic artifacts | ✗ dict | partial |
| Trace & replay any run | ✓ SQLite TraceLog | ✗ | ✓ |
| Works 100% offline | ✓ Ollama natively | partial | partial |
| Lines to first agent | 3 | ~15 | ~20 |
| Governance hash per agent | ✓ SHA-256 | ✗ | ✗ |
| CLI (commands) | ✓ 29 commands | limited | basic |
| Production SaaS layer | ✓ optional | ✗ | ✗ |
The core differentiator: every output is a typed artifact (Pydantic class, not a dict) and every decision is recorded to a local TraceLog you can replay. Both work offline, for free.
Quick start
Zero setup — simulated LLM, no credentials:
Runs immediately. Produces typed artifacts with deterministic fake content — good for testing and CI, not for real AI output.
pip install antcrew
antcrew run --model simulated "Build a REST API for user authentication"
Fully local — Ollama (real AI, no API key, no data leaves your machine):
Requires Ollama installed (~5 min) and ollama pull llama3.
antcrew run --model ollama:llama3 "Build a REST API for user authentication"
Cloud model — real AI, no local setup:
export ANTHROPIC_API_KEY=sk-ant-...
antcrew run --model claude "Build a REST API for user authentication"
Don't want to configure anything? Use antcrew-platform — the managed tier provides the LLM. You run agent teams from a web UI without installing Ollama or managing API keys.
From Python:
from antcrew import DevTeam
from antcrew.models import OllamaModel, AnthropicModel, SimulatedLLM
# Local — no API key
team = DevTeam(model=OllamaModel("llama3"))
# Cloud
team = DevTeam(model=AnthropicModel("claude-sonnet-4-6"))
result = team.run("Build a REST API for user authentication")
print(result.state["prd"].title) # PRD object
print(len(result.state["tickets"])) # list[Ticket]
print(result.cost_usd) # e.g. 0.43 (0.0 with Ollama)
Inspect the trace after any run:
antcrew inspect <run-id>
# Shows: prompt, response, tokens, cost, governance hash — per agent
antcrew trace replay <run-id>
# Replays every agent call to detect model drift
Teams
| Team | Agents | Best for |
|---|---|---|
DevTeam |
BA → PM → BackendDev | Backend features, APIs |
FullStackTeam |
BA → PM → Backend → Frontend → QA → Reviewer → DevOps → DocWriter | Full-stack MVPs |
ResearchTeam |
Researcher → Writer | Technical research, blog posts |
ContentTeam |
Idea → Copywriter → Editor | Marketing content, docs |
CustomTeam |
User-defined steps (code or YAML) | Fully custom pipelines |
Router |
Classifier → dispatches to any team | Smart routing |
LegalReviewTeam |
ClauseExtractor → RiskFlagging → LegalReviewer | Contract review with risk scoring |
CodeMigrationTeam |
Scanner → Planner → Migrator → Verifier | Automated codebase migration |
ReproducibleResearchPipeline |
ResearchTeam + full-trace + governance_hash | Reproducible AI research |
BrandVoiceContentTeam |
ContentTeam + ChromaMemory per-brand | On-brand content at scale |
WhiteLabelWrapper |
Wraps any team with markup billing | Agency / reseller billing |
from antcrew import (
DevTeam, FullStackTeam, ResearchTeam, ContentTeam, CustomTeam, Router,
LegalReviewTeam, CodeMigrationTeam, ReproducibleResearchPipeline,
BrandVoiceContentTeam, BrandVoiceProfile, WhiteLabelWrapper,
)
Features
- LLM-agnostic. Anthropic, OpenAI, Gemini, Groq, Azure, Ollama, LM Studio, LiteLLM (100+ providers). Mix models per agent.
- Local-first. Run entirely on your machine with Ollama — no API keys, no data leaves your network.
- Typed artifacts. PRDs, tickets, code, tests, and docs are Pydantic objects — predictable, auditable, and serializable.
- TraceLog. Every agent call is written to a local SQLite database.
antcrew inspect <id>andantcrew trace replay <id>work offline. - Governance hash. Each agent configuration produces a deterministic SHA-256 hash — cite in papers, pin in CI.
- Human-in-the-loop.
FlexibleHITLpauses any checkpoint for local approval (callback) or remote review (via antcrew-platform). - Semantic memory. ChromaDB or in-memory vector store. Agents reference decisions from past runs.
- EvalSuite. Regression testing for agent outputs. Run in CI with
antcrew eval. - MCP tools. Any MCP-compatible tool server works out of the box.
- Project sessions. Tickets, code, and docs accumulate across multiple runs instead of starting fresh.
- Real sandbox execution. Generated tests run in a subprocess or Docker container and results feed back into state.
- Retry + resilience. Exponential-backoff retry on timeouts, rate limits, and transient errors.
Specialized teams
Legal review:
from antcrew import LegalReviewTeam
team = LegalReviewTeam()
result = team.run(nda_text)
finding = result.state["legal_finding"]
print(f"High-risk clauses: {finding.high_risk_count}, approved: {finding.approved}")
Reproducible research — cite and replay:
from antcrew import ReproducibleResearchPipeline
pipeline = ReproducibleResearchPipeline(db_path="experiments.db")
exp = pipeline.run("What are the failure modes of multi-agent AI systems?")
print(exp.experiment_id) # "<team_hash>:<run_id>" — stable identifier
# Replay later to detect model drift
for call in pipeline.replay_experiment(exp.experiment_id):
print(call["agent_name"], "matched:", call["matched"])
Brand voice content:
from antcrew import BrandVoiceContentTeam, BrandVoiceProfile
profile = BrandVoiceProfile(
name="Acme Corp",
tone="Professional but approachable",
standards=["Always end with a CTA", "Use 'you' not 'users'"],
examples=["Our API ships same-day — because waiting is so 2019."],
)
team = BrandVoiceContentTeam(brand=profile) # requires pip install antcrew[memory]
result = team.run("Write a product launch announcement")
White-label billing:
from antcrew import DevTeam, WhiteLabelWrapper
billing = WhiteLabelWrapper(DevTeam(), client_label="acme-corp", markup_pct=200)
record = billing.run("Build a REST API for a todo app")
print(f"Billed: ${record.billed_usd:.4f} Margin: {record.margin_pct:.1f}%")
CLI reference
antcrew run "goal" # run a team locally
antcrew run "goal" --model ollama:llama3 # offline, no API key
antcrew init # scaffold a new project interactively
antcrew inspect <run-id> # view trace: prompts, tokens, cost, governance hash
antcrew trace replay <run-id> # replay all agent calls
antcrew eval # run EvalSuite regression tests
antcrew describe # show pipeline data flow (consumes/produces)
antcrew serve # local web dashboard
antcrew cost # usage and cost summary
antcrew dag # visualize agent graph
Run antcrew --help for the full list of 29 commands.
Optional extras
pip install "antcrew[memory]" # ChromaDB semantic memory
pip install "antcrew[litellm]" # 100+ LLM providers via LiteLLM
pip install "antcrew[slack]" # Slack HITL + notifications
pip install "antcrew[telegram]" # Telegram notifications
pip install "antcrew[mcp]" # MCP tool servers
Architecture
pip install antcrew is the only install you need. The package ships two layers in a single wheel:
| Layer | What it does |
|---|---|
antcrew |
Named-role teams (BA, PM, Dev…) orchestrated with LangGraph. HITL, sessions, memory. |
antcrew_engine |
Goal-directed EngineLoop — capabilities selected at runtime until conditions are satisfied. Bundled inside antcrew since v0.35.0. |
All engine capabilities (Architect, CodeGenerator, TestRunner…) are available directly from antcrew.engine.* or via from antcrew_engine import EngineLoop.
When to use antcrew-platform (optional)
The SDK runs entirely locally — no cloud account required. antcrew-platform is the optional SaaS layer for teams that need:
- Multi-workspace concurrent runs with cost roll-up
- Remote HITL — reviewers approve from Slack or a web link, not a terminal
- Dashboard — live run stream, eval trends, cost charts
- GitHub App — auto-post explainability comments on PRs
- Webhook delivery — push run events to your systems
License
MIT
Metadata
Release files for antcrew 0.36.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| antcrew-0.36.0.tar.gz | 765.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| antcrew-0.36.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.4 MB
Release files / antcrew-0.36.0.tar.gz
| Download URL | antcrew-0.36.0.tar.gz |
|---|---|
| Size | 765.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f7c6fa310f75018db201601e2d21f4687d0c1ef55b473981246c55435a829eb0
|
|
BLAKE2b-256 checksum How to use checksums |
3154572d449a4c97bc7001517a56e7d8e483d3d6b693987443348e69fc5b09e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / antcrew-0.36.0-py3-none-any.whl
| Download URL | antcrew-0.36.0-py3-none-any.whl |
|---|---|
| Size | 599.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
689bfc59b370fbfa7f2b612694f38448fda75db40b83800593bc857f798fe211
|
|
BLAKE2b-256 checksum How to use checksums |
2e9c827da5aabbd61954c55827cb1ddb20514bfbf7473b83ae504d0c32c8eedf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for antcrew 0.36.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.