Continuum + Codex CLI Skill
Codex CLI reads AGENTS.md from the project root automatically.
The Continuum repo ships a ready-made AGENTS.md — copy or symlink
it into any downstream project.
Minimal AGENTS.md for a Continuum project
# My Project — Agent Knowledge Pack
@/path/to/continuum/AGENTS.md
## Project-specific conventions
- Package: `my_app` (imports as `from my_app import ...`)
- Entry point: `src/my_app/main.py`
- Agents are defined in `src/my_app/agents.py`
- Tests: `pytest tests/` with `pytest-asyncio`
## Key agents in this project
| Agent | File | Purpose |
|---|---|---|
| `SupportAgent` | `agents/support.py` | Customer support triage |
| `BillingAgent` | `agents/billing.py` | Billing inquiries |
The @import pulls in the full Continuum API reference so Codex knows
every class, field, and pattern.
What AGENTS.md must include for Continuum projects
Codex needs these facts to write correct code on the first try:
- Import name:
orchestrator(notcontinuumorshyftlabs_continuum) - Async: all public APIs are async — entrypoints need
asyncio.run() - Provider routing: by model-string prefix, or via
SMART_GATEWAY_URL - Infrastructure: Redis on
:6380, Milvus/Qdrant for memory - No LiteLLM: direct provider SDKs only
Minimal addition to any AGENTS.md:
## Continuum conventions
- Import: `from orchestrator.agent import BaseAgent, AgentRunner`
- All APIs async. Use `asyncio.run(main())` at entrypoints.
- Model routing: prefix-based (`gpt-*` → OpenAI, `claude-*` → Anthropic, `gemini/*` → Gemini)
- Gateway: set `SMART_GATEWAY_URL` to route all models through the Smart Gateway
- Memory: Redis (:6380) for sessions, Milvus (:19530) or Qdrant (:6333) for long-term
- Load dotenv: always `load_dotenv()` before importing orchestrator settings
Running Codex against a Continuum project
# Point Codex at the project
cd my-continuum-project
codex "add a handoff from SupportAgent to BillingAgent for billing questions"
Codex will read AGENTS.md, understand the Continuum API, and generate
correct Handoff(target_agent=..., description=...) code.
Don't
- Don't omit
load_dotenv()— Codex-generated scripts often miss it and settings fail to load. - Don't tell Codex to use
litellm— it's removed from Continuum. - Don't let Codex guess at field names — always have
AGENTS.mdpresent so it reads the authoritative API.
Source: shyftlabs/continuum — distributed by TomeVault.