LangStage¶
Every stage for your LangGraph agent.
Write your agent once — any LangGraph CompiledGraph, from a single ReAct agent
to a multi-agent supervisor — and run it on every surface with the same
spec string, the same langstage.toml config, and the same LANGSTAGE_*
environment variables. The web, your terminal, JupyterLab, and VS Code all
become stages your agent can perform on.
Multi-agent? It already works.
A supervisor, swarm, or crew compiles to the same CompiledStateGraph
LangStage loads — so multi-agent routing and hand-offs run and stream exactly
like a single agent, with no extra setup. See
Running a multi-agent supervisor.
30-second quickstart¶
No agent or API key yet? See a stage working with the built-in keyless demo agent:
Then point it at your agent — a Python file (or module) that exports a
LangGraph CompiledGraph:
That same my_agent.py:graph spec runs unchanged on every other stage below.
The family¶
| Stage | Package | Try it |
|---|---|---|
| Web app | langstage |
langstage run --agent my_agent.py:graph |
| Terminal | langstage-cli |
langstage-cli -a my_agent.py:graph |
| JupyterLab | langstage-jupyter |
pip install langstage-jupyter, then the chat sidebar |
| VS Code | langstage-vscode |
the @langstage chat participant |
| Reference agent | langstage-hermes |
LANGSTAGE_AGENT_SPEC=langstage_hermes.agent:graph |
| Shared core | langgraph-stream-parser |
typed events + config resolver behind every stage |
Why LangStage¶
- Write once, run anywhere. A single
module:attr/path/to/file.py:attrspec string is understood identically by every stage. - Keyless demo on every stage. Each surface ships a
--demomode backed by a deterministic echo agent, so you can see it work before configuring keys. - One config story.
defaults < langstage.toml < LANGSTAGE_* env < flags— inspect the resolved values anywhere with--show-config. - Built on the standard. Pure LangGraph /
deepagents; the shared core is
just a typed parser for
graph.stream()output.
Coming from deepagent-* or cowork-dash?
Every package was renamed into the LangStage family. Your old pip installs,
imports, and commands still work — see Migrating.
Start with Installation →