From atomic-agents
Scaffolds a new Atomic Agents project with directory, pyproject.toml, .env, first agent, and runnable entry point. Creates a complete, working Python project.
How this skill is triggered — by the user, by Claude, or both
Slash command
/atomic-agents:new-app [project-name][project-name]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Scaffold a fresh Atomic Agents project. The result is a single-package Python project with one working agent, one schema pair, a provider-wrapped client, and a runnable `main.py`.
Scaffold a fresh Atomic Agents project. The result is a single-package Python project with one working agent, one schema pair, a provider-wrapped client, and a runnable main.py.
This skill is opinionated. Produce a complete, tested skeleton the user can run immediately.
Ask these questions in one message, not one-at-a-time. Skip any the user already answered (including via $ARGUMENTS).
$ARGUMENTS if provided. Normalize to kebab-case for the directory and snake_case for the package.SystemPromptGenerator content and the starter schema pair. Defaults to a generic chat agent.uv (default, because the repo uses uv) or pip + venv.Do not ask about project layout, Python version, or dependency list. Pick them.
State the plan in one short block and wait for a yes. Include:
<project-name>/<project_name>/>=3.12 (Atomic Agents uses PEP 695 generics)atomic-agents>=2.7, instructor[<provider-extra>]>=1.14, python-dotenv, richpytest, pytest-asyncio, ruff<agent-type> — uses BasicChatInputSchema/BasicChatOutputSchema unless the agent type calls for custom schemasframework/references/providers.md)main.py with a REPLCreate files in this order. Verify each step before proceeding.
<project-name>/
├── pyproject.toml
├── .env.example
├── .gitignore
├── README.md
├── AGENTS.md
├── CLAUDE.md
└── <project_name>/
├── __init__.py
└── main.py
pyproject.tomlUse the template from framework/references/project-structure.md, substituting the chosen provider extra and project name.
.env.exampleInclude the provider's API-key variable with a placeholder. Never the real key.
.gitignoreUse the template from framework/references/project-structure.md.
<project_name>/main.pyProduce a runnable REPL. Load .env, instantiate the provider client per framework/references/providers.md, build an agent, wire a ChatHistory with a seed assistant message, loop on console.input(...).
For the agent itself, follow the workflow from the atomic-agents:create-atomic-agent skill — same canonical imports, same per-provider mode matrix, same SystemPromptGenerator shape.
When a custom agent type was requested, build custom InputSchema / OutputSchema subclasses with field description= populated, following the atomic-agents:create-atomic-schema skill. Otherwise use BasicChatInputSchema / BasicChatOutputSchema.
Always use the canonical imports:
from atomic_agents import (
AtomicAgent, AgentConfig,
BasicChatInputSchema, BasicChatOutputSchema,
)
from atomic_agents.context import ChatHistory, SystemPromptGenerator
from instructor import Mode
Per-provider AgentConfig knobs — match the Instructor factory mode on AgentConfig.mode:
mode (or set Mode.TOOLS).mode=Mode.TOOLS; include max_tokens in model_api_parameters.mode=Mode.JSON (Instructor factory also uses Mode.JSON).assistant_role="model" and mode=Mode.GENAI_TOOLS (Instructor factory uses Mode.GENAI_TOOLS).mode=Mode.TOOLS.README.mdShort. Include: what the project is, how to install (uv sync or pip install -e .[dev]), how to set the API key (cp .env.example .env and edit), how to run (uv run python -m <project_name>.main or equivalent).
AGENTS.md and CLAUDE.mdEvery scaffolded project ships agent instructions so any coding assistant (Cursor, Codex, Copilot, Gemini CLI, ...) knows the framework conventions from the first commit. CLAUDE.md contains exactly one line — @AGENTS.md — so Claude Code reads the same file without duplication.
AGENTS.md template (substitute project specifics):
# <Project Name>
<One-line description from the agent-type answer.>
Built with [Atomic Agents](https://github.com/eigenwise/atomic-agents) — a schema-driven
framework on Instructor + Pydantic. Docs for LLMs:
https://eigenwise.github.io/atomic-agents/llms.txt
## Framework conventions
- Import from the top-level package: `from atomic_agents import AtomicAgent, AgentConfig,
BaseIOSchema, BaseTool`; context pieces from `atomic_agents.context`.
- Agents are `AtomicAgent[InputSchema, OutputSchema](config=AgentConfig(...))` — the type
parameters carry runtime information, keep them accurate.
- The LLM client must be wrapped with Instructor before it goes into `AgentConfig.client`.
- Every `BaseIOSchema` subclass needs a non-empty docstring and `Field(..., description=...)`
on each field — both flow into the LLM prompt.
- Provider knobs (`temperature`, `max_tokens`, ...) go in `AgentConfig.model_api_parameters`.
- Provider: <chosen provider>. <Provider-specific line from the matrix below, if any.>
## Commands
- Install: `uv sync` (or the pip equivalent chosen at scaffold time)
- Run: `uv run python -m <project_name>.main`
- Test: `uv run pytest`
Provider-specific lines for the template: Anthropic → "Requires max_tokens in model_api_parameters; mode=Mode.TOOLS." Gemini → "assistant_role='model' and mode=Mode.GENAI_TOOLS." Groq/Ollama/MiniMax → "mode=Mode.JSON on both the Instructor factory and AgentConfig." OpenAI/OpenRouter → omit.
Execute the install step:
uv syncpython -m venv .venv && .venv/bin/pip install -e ".[dev]" (Windows: .venv\Scripts\pip)Verify imports without a live API key:
uv run python -c "from <project_name>.main import agent; print('ok')"
If that works, the scaffold is sound. Tell the user to drop their key into .env and run the REPL.
After scaffolding, tell the user:
cp .env.example .env).uv run python -m <project_name>.main).atomic-agents:create-atomic-schema skill.atomic-agents:create-atomic-agent skill.atomic-agents:create-atomic-tool skill.atomic-agents:create-atomic-context-provider skill.framework/references/orchestration.md.framework (auto-triggered) and review (auto-triggered before commit)..env. Only .env.example.gpt-5-mini, Anthropic claude-haiku-4-5, Groq llama-3.3-70b-versatile, Ollama llama3.1, Gemini gemini-2.5-flash.framework/references/project-structure.md already templates.npx claudepluginhub eigenwise/atomic-agents --plugin atomic-agentsGuides usage of the Atomic Agents Python framework for building typed, schema-driven LLM applications with agents, tools, context providers, and multi-agent orchestration.
Scaffolds a new project with directory structure, CLAUDE.md, config files, hooks, skills, and first commit after interviewing the developer for name, description, stack, and optional components.
Bootstraps a new or existing project with Claude Code infrastructure: creates CLAUDE.md, hooks, rules, and generates tailored agents. Invoke via /bootstrap when starting a project or adding Claude Code support.