Observed since 20 Oct, 23:17 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
agent-scaffold-cli
Generate runnable AI agent projects from markdown specs in the agent-deployments repo.
agent-scaffold generates runnable AI agent projects from markdown specs. It fetches the agent-deployments catalog at runtime (one URL hardcoded, overridable via --catalog-url) and falls back to an embedded snapshot when offline — pick a recipe, target language, and framework, and the CLI assembles the relevant docs, asks Claude to emit a complete project, validates the response, and writes the files atomically into your destination of choice.
agent-blueprints and agent-deployments are the two arms that feed this CLI — the engine that composes a selection into a real, running agent:
agent-blueprints ──────────┐
(design core) │
kernel · patterns · IR ├──> agent-scaffold ──> running agent
│ (composition (code + server,
agent-deployments ─────────┘ engine) live)
(verified options)
adapters · recipes · catalog
catalog.yaml. Which concrete options realize each port.The package is published on PyPI as agent-scaffold-cli and installs two equivalent binaries: agent-scaffold (long form) and scaffold (short, claude-style). Bare scaffold (no subcommand) drops you straight into the interactive REPL.
One-line install (recommended). Installs the CLI, adds it to your PATH, and offers to store your Anthropic key:
curl -fsSL https://raw.githubusercontent.com/jagguvarma15/agent-scaffold/main/install.sh | sh
Or install manually. A plain pip install can't put the binaries on your PATH (wheels run no code at install time), so use pipx/uv tool and run their one-time PATH step:
pipx install agent-scaffold-cli && pipx ensurepath
# or
uv tool install agent-scaffold-cli && uv tool update-shell
# or, for one-off use (no install, no PATH change):
uvx --from agent-scaffold-cli scaffold --help
Either way, restart your shell afterward, then store your Anthropic key once with scaffold auth login (the one-line installer prompts for it during setup). scaffold won't start without a key.
export ANTHROPIC_API_KEY=sk-ant-...
agent-scaffold scaffold # interactive shell — recommended
# or, one-shot:
agent-scaffold new
By default the interactive flow chains generation into a running stack: install deps, start docker, run migrations, seed data, launch the frontend, open the browser. See the quickstart guide for the full lifecycle and its escape hatches.
The full manual lives at jagguvarma15.github.io/agent-scaffold:
/new wizardup, update, down, logs, evalContributor docs stay in the repo: CONTRIBUTING.md, SECURITY.md, CHANGELOG.md.
git clone https://github.com/jagguvarma15/agent-scaffold
cd agent-scaffold
uv sync
make install-dev # exposes `scaffold` + `agent-scaffold` on PATH (editable)
MIT (see LICENSE).
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
anthropicEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | anthropic<1,>=0.104 | runtime |
prompt-toolkitEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | prompt-toolkit<4,>=3.0 | runtime |
pydanticEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | pydantic<3,>=2.9 | runtime |
pyfigletEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | pyfiglet>=1.0.2 | runtime |
pyyamlEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | pyyaml<7,>=6.0.1 | runtime |
questionaryEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | questionary==2.0.1 | runtime |
rapidfuzzEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | rapidfuzz<4,>=3.9 | runtime |
richEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | rich==13.9.4 | runtime |
typerEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | typer==0.26.8 | runtime |
httpxEnvironment{
"extras": "",
"marker": "extra == \"all\"",
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | httpx>=0.27; extra == "all" | runtime |
kafka-pythonEnvironment{
"extras": "",
"marker": "extra == \"all\"",
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | kafka-python<3,>=2.0; extra == "all" | runtime |
keyringEnvironment{
"extras": "",
"marker": "extra == \"all\"",
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | keyring<26,>=24.0; extra == "all" | runtime |
langsmithEnvironment{
"extras": "",
"marker": "extra == \"all\"",
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | langsmith<1,>=0.1; extra == "all" | runtime |
psycopgEnvironment{
"extras": "binary",
"marker": "extra == \"all\"",
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | psycopg[binary]<4,>=3.1; extra == "all" | runtime |
qdrant-clientEnvironment{
"extras": "",
"marker": "extra == \"all\"",
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | qdrant-client<2,>=1.10; extra == "all" | runtime |
redisEnvironment{
"extras": "",
"marker": "extra == \"all\"",
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | redis<6,>=5.0; extra == "all" | runtime |
kafka-pythonEnvironment{
"extras": "",
"marker": "extra == \"kafka\"",
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | kafka-python<3,>=2.0; extra == "kafka" | runtime |
redisEnvironment{
"extras": "",
"marker": "extra == \"kafka\"",
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | redis<6,>=5.0; extra == "kafka" | runtime |
keyringEnvironment{
"extras": "",
"marker": "extra == \"keyring\"",
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | keyring<26,>=24.0; extra == "keyring" | runtime |
langsmithEnvironment{
"extras": "",
"marker": "extra == \"obs\"",
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | langsmith<1,>=0.1; extra == "obs" | runtime |
httpxEnvironment{
"extras": "",
"marker": "extra == \"vector\"",
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | httpx>=0.27; extra == "vector" | runtime |
psycopgEnvironment{
"extras": "binary",
"marker": "extra == \"vector\"",
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | psycopg[binary]<4,>=3.1; extra == "vector" | runtime |
qdrant-clientEnvironment{
"extras": "",
"marker": "extra == \"vector\"",
"requires_python": ">=3.11",
"evaluation": "NOT_EVALUATED"
} | qdrant-client<2,>=1.10; extra == "vector" | runtime |
bdist_wheel · 505.9 KB · Python py3
sdist · 922.35 KB · Python source
Shared repository data · GitHub
Observed since 20 Oct, 23:17 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:fa0c6e3517f7d30b51a7b40bc30e9dfe4a1bfd6a65587c504d61bed40d511c42