Catalog PyPI
Back to packageRELEASE DETAILS

0.4.576

PyPI

agent-scaffold-cli

Generate runnable AI agent projects from markdown specs in the agent-deployments repo.

agentaianthropicclaudeclicode-generationscaffolding
Published21 Jul 2026
Direct dependencies16
Transitive dependenciesNot calculated

README

Version 0.4.576 documentation

agent-scaffold

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.

The three-repo ecosystem

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
  • agent-blueprints — the design core: the kernel, framework-agnostic patterns at five levels, and the spec/IR a selection compiles to. What the agent is and how it's shaped.
  • agent-deployments — the verified options: a port-typed registry of vetted adapters and production-shaped recipes, indexed by catalog.yaml. Which concrete options realize each port.
  • agent-scaffold (this repo) — the composition engine: validates a selection, binds each port to a deployments option, and emits a complete, running project.

Install

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.

Quickstart

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.

Documentation

The full manual lives at jagguvarma15.github.io/agent-scaffold:

Contributor docs stay in the repo: CONTRIBUTING.md, SECURITY.md, CHANGELOG.md.

Local development

git clone https://github.com/jagguvarma15/agent-scaffold
cd agent-scaffold
uv sync
make install-dev   # exposes `scaffold` + `agent-scaffold` on PATH (editable)

License

MIT (see LICENSE).

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 23

Native requirements
16 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
anthropic
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
anthropic<1,>=0.104runtime
prompt-toolkit
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
prompt-toolkit<4,>=3.0runtime
pydantic
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
pydantic<3,>=2.9runtime
pyfiglet
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
pyfiglet>=1.0.2runtime
pyyaml
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
pyyaml<7,>=6.0.1runtime
questionary
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
questionary==2.0.1runtime
rapidfuzz
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
rapidfuzz<4,>=3.9runtime
rich
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
rich==13.9.4runtime
typer
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
typer==0.26.8runtime
httpx
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
httpx>=0.27; extra == "all"runtime
kafka-python
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
kafka-python<3,>=2.0; extra == "all"runtime
keyring
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
keyring<26,>=24.0; extra == "all"runtime
langsmith
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
langsmith<1,>=0.1; extra == "all"runtime
psycopg
Environment
{
  "extras": "binary",
  "marker": "extra == \"all\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
psycopg[binary]<4,>=3.1; extra == "all"runtime
qdrant-client
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
qdrant-client<2,>=1.10; extra == "all"runtime
redis
Environment
{
  "extras": "",
  "marker": "extra == \"all\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
redis<6,>=5.0; extra == "all"runtime
kafka-python
Environment
{
  "extras": "",
  "marker": "extra == \"kafka\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
kafka-python<3,>=2.0; extra == "kafka"runtime
redis
Environment
{
  "extras": "",
  "marker": "extra == \"kafka\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
redis<6,>=5.0; extra == "kafka"runtime
keyring
Environment
{
  "extras": "",
  "marker": "extra == \"keyring\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
keyring<26,>=24.0; extra == "keyring"runtime
langsmith
Environment
{
  "extras": "",
  "marker": "extra == \"obs\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
langsmith<1,>=0.1; extra == "obs"runtime
httpx
Environment
{
  "extras": "",
  "marker": "extra == \"vector\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
httpx>=0.27; extra == "vector"runtime
psycopg
Environment
{
  "extras": "binary",
  "marker": "extra == \"vector\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
psycopg[binary]<4,>=3.1; extra == "vector"runtime
qdrant-client
Environment
{
  "extras": "",
  "marker": "extra == \"vector\"",
  "requires_python": ">=3.11",
  "evaluation": "NOT_EVALUATED"
}
qdrant-client<2,>=1.10; extra == "vector"runtime

Distribution files

2 collected
agent_scaffold_cli-0.4.576-py3-none-any.whl

bdist_wheel · 505.9 KB · Python py3

Source file
agent_scaffold_cli-0.4.576.tar.gz

sdist · 922.35 KB · Python source

Source file

Repository

PENDING
jagguvarma15/agent-scaffold

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 23:17 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:fa0c6e3517f7d30b51a7b40bc30e9dfe4a1bfd6a65587c504d61bed40d511c42

Other collected versions

View all collected versions →