Open-source, self-hosted Claude Code - a terminal AI assistant and the Python framework behind it. Tool-calling, sandboxed execution, multi-agent teams, skills, checkpoints, unlimited context - on Pydantic AI, any model.
$ npx -y skills add vstorm-co/pydantic-deepagents --agent claude-code
Run the curl in your terminal, the rest in Claude Code.
Repo: vstorm-co/pydantic-deepagents
What's inside
Pydantic Deep Agents is two things in one repo:
π₯οΈ A terminal AI assistant β a self-hosted, open-source alternative to Claude Code. Install it, point it at any model, and it plans, edits files, runs commands, searches the web, remembers across sessions, spawns sub-agents, and connects to MCP servers. Almost everything Claude Code does β on the model you choose.
π A Python framework β the exact same harness behind a single function call. create_deep_agent() hands a model a filesystem, shell, planning, memory, sub-agents, sandboxed execution, MCP, and unlimited context. Build your own assistant, research agent, or coding tool without rewiring the plumbing every time.
Both run on Pydantic AI, work with any model (Claude, GPT, Gemini, local), and are 100% type-safe and MIT-licensed β and they share one trick nothing else has: Live Run Forking, splitting a single run into parallel branches an AI judge merges back together.
A Claude-Code-style TUI in your terminal, on any model β no Python setup (the script installs uv + the CLI for you):
curl -fsSL https://raw.githubusercontent.com/vstorm-co/pydantic-deep/main/install.sh | bash
pydantic-deep
Windows / manual:
pip install "pydantic-deep[cli]"
One function call gives you a full deep agent:
pip install pydantic-deep
from pydantic_deep import create_deep_agent
agent = create_deep_agent(model="anthropic:claude-sonnet-4-6")
result = await agent.run("Build a REST API for auth")
Claude Code can't do this. Aider can't. LangGraph and CrewAI can't. It's the reason to use pydantic-deep.
When an agent hits a fork in the road β "should I refactor this with a decorator or a context manager?" β most tools force one bet. Pydantic Deep Agents lets the run branch:
βββ branch A: "use a decorator" ββ tests: 8/8 β conf 0.71
agent.run("refactor auth") βββ¬ββΌββ branch B: "use a context manager" ββ tests: 6/8 β conf 0.42
(shared history) β βββ branch C: "extract a base class" ββ tests: 8/8 β conf 0.55
β
ββββΊ βοΈ AI judge weighs quality + tests + consistency
β adopts branch A, continues the run
Each branch is fully isolated: a copy-on-write filesystem overlay (reads fall through to the parent, writes stay local), its own steering message, and its own budget_usd cap. The coordinator resolves the fork with one of four acceptance modes β manual, auto, auto_with_fallback (default), or vote β and the winning branch's history is adopted as the parent run's continuation.
Framework β opt in with one flag:
agent = create_deep_agent(
model="anthropic:claude-sonnet-4-6",
forking=True, # gives the agent: fork_run, inspect_branches,
) # merge_or_select, diff_branches, fork_cost, terminate_branch
Or run a real test command against every branch and let exit codes decide the winner:
from pydantic_deep import LiveForkCapability
agent = create_deep_agent(
forking=LiveForkCapability(test_command="pytest -q", test_timeout_s=120),
)
# confidence = quality_spreadΒ·0.4 + test_pass_ratioΒ·0.4 + internal_consistencyΒ·0.2
CLI β fork an in-flight conversation, watch branches stream live, merge the best:
/fork # split the current run into N parallel branches
>>A try a decorator # steer branch A
>>B use a contextmgr # steer branch B
/merge # resolve β manual picker, AI judge, or vote
Live per-branch panels stream each approach side by side; a judge screen scores them; you accept, review the diff, or decline. Configure branch count, budgets, per-branch models, and merge strategy with /fork-config.
π Full reference: docs/capabilities/live-fork.md
The only tool that is a terminal assistant and a Python framework and can fork its own runs β without giving up type safety or your choice of model.
| PydanticΒ Deep | ClaudeΒ Code | Aider | LangGraph | CrewAI | |
|---|---|---|---|---|---|
| Terminal TUI assistant | β | β | β | β | β |
| Python framework / library | β | β | ~ | β | β |
| Live run forking + AI judge | β | β | β | β | β |
| Multi-agent swarm + message bus | β | ~ | β | β | β |
| Any model / any provider | β | Anthropic | β | β | β |
| Sandboxed Docker execution | β | β | ~ | DIY | DIY |
| Persistent memory + skills | β | β | β | DIY | ~ |
| Type-safe structured output | β | β | β | ~ | ~ |
| MCP servers | β | β | β | ~ | ~ |
| Self-hosted, open source | β MIT | β | β | β | β |
β first-class Β· ~ partial / via extensions Β· β not available Β· DIY you wire it yourself. Comparison reflects each project as of 2026-06; corrections welcome via PR.
agent.run() into N parallel branches with copy-on-write isolation, per-branch budgets, a test-runner hook, and four merge modes (manual / auto / auto_with_fallback / vote). Opt in with forking=True./mcp command. Plus a full CLI presentation pass: clipboard image paste, real +/- diffs, tool icons, turn summaries.fallback_model= wraps your primary in a FallbackModel chain; fires on API errors but never on auth errors. Plus a batteries-included security hook preset (default_security_hook()) and three new output styles (markdown, json-only, bullet).include_liteparse=True) β PDFs, DOCX, XLSX, PPTX, and images with optional OCR, all local.pydantic-deep run), Docker sandbox with named workspaces, browser automation via Playwright.Full history: CHANGELOG.md
Pydantic Deep Agents is an agent harness β the complete infrastructure that wraps an LLM and makes it a functional autonomous agent. The model provides intelligence; the harness provides planning, tools, memory, sandboxed execution, unlimited context, and β uniquely β the ability to fork.
Built natively on pydantic-ai β uses the Capabilities API directly, inherits all pydantic-ai streaming, multi-model support, and Pydantic validation automatically.
A Claude Code-style terminal AI assistant that works with any model and any provider β and forks.
curl -fsSL https://raw.githubusercontent.com/vstorm-co/pydantic-deep/main/install.sh | bash
No Python setup required β the script installs uv and the CLI automatically. Then:
export ANTHROPIC_API_KEY=sk-ant-...
pydantic-deep
Windows / manual:
pip install "pydantic-deep[cli]"Β Β·Β Update:pydantic-deep update
Works with any model that supports tool-calling:
| Provider | Example models |
|---|---|
| Anthropic | anthropic:claude-opus-4-6, claude-sonnet-4-6 |
| OpenAI | openai:gpt-5.4, gpt-4.1 |
| OpenRouter | openrouter:anthropic/claude-opus-4-6 (200+ models) |
| Google Gemini | google-gla:gemini-2.5-pro |
| Ollama (local) | ollama:qwen3, ollama:llama3.3 |
| Any OpenAI-compatible | Custom base URL via env |
Switch model anytime: pydantic-deep config set model openai:gpt-5.4 or /model in the TUI.
| Feature | |
|---|---|
| β | Live run forking β split a run into branches, stream them side by side, merge the winner |
| π¬ | Streaming chat with tool call visualization, icons, and real +/- diffs |
| π | File read / write / edit, shell execution, glob, grep |
| π€ | Task planning, plan mode, and subagent delegation |
| π§ | Persistent memory and self-improvement across sessions |
| βΎοΈ | Context compression for unlimited conversations |
| π | Checkpoints β save, rewind, and fork any session |
| π | MCP servers via /mcp β GitHub, Figma (OAuth), and more; import from Claude Code |
| π | Web search & fetch built-in Β· π₯οΈ browser automation via Playwright (--browser) |
| π³ | Docker sandbox β sandboxed execution with named workspaces |
| π | Extended thinking β minimal / low / medium / high / xhigh |
| π | Clipboard image paste (Ctrl+V / /paste) β multimodal prompts |
| π° | Real-time cost and token tracking per session |
| π‘οΈ | Tool approval dialogs β approve, auto-approve, or deny per tool call |
| @ | @filename file references Β· !command shell passthrough |
| β¨ | /fork, /merge, /improve, /skills, /mcp, /model, /theme, /compact, and more |
# Interactive TUI (default)
pydantic-deep
pydantic-deep tui --model openrouter:anthropic/claude-opus-4-6
# Headless deep agent β benchmarks, CI/CD, scripted automation
pydantic-deep run "Fix the failing test in test_auth.py"
pydantic-deep run --task-file task.md --json
# Docker sandbox β sandboxed execution, project dir mounted at /workspace
pydantic-deep tui --sandbox docker
pydantic-deep tui --workspace ml-env # named workspace, packages persist
# Browser automation (requires pydantic-deep[browser])
pydantic-deep tui --browser
# Config & skills
pydantic-deep config set model anthropic:claude-sonnet-4-6
pydantic-deep skills list
pydantic-deep update # update to latest version
See CLI docs for the full reference.
pip install pydantic-deep
One function call gives you a production deep agent with planning, tool-calling, multi-agent delegation, persistent memory, unlimited context, forking, and cost tracking. Everything is a toggle:
from pydantic_ai_backends import StateBackend
from pydantic_deep import create_deep_agent, create_default_deps
agent = create_deep_agent(
model="anthropic:claude-sonnet-4-6",
forking=True, # β split a run into parallel branches + AI judge
include_todo=True, # Task planning with subtasks and dependencies
include_subagents=True, # Multi-agent swarm β delegate to subagents
include_skills=True, # Domain-specific skills from SKILL.md files
include_memory=True, # Persistent memory across sessions
include_plan=True, # Structured planning before execution
include_teams=True, # Agent teams with shared TODO lists + message bus
include_liteparse=True, # Document parsing β PDF, DOCX, XLSX + OCR
web_search=True, # Tool-calling: web search
thinking="high", # Extended thinking / reasoning effort
context_manager=True, # Unlimited context via auto-summarization
cost_tracking=True, # Token/USD budget enforcement
fallback_model="openai:gpt-5.4", # auto-retry if the primary model fails
include_checkpoints=True, # Save, rewind, and fork conversations
)
deps = create_default_deps(StateBackend())
result = await agent.run("Build a REST API for user auth", deps=deps)
Type-safe responses with Pydantic models β no JSON parsing, no dict["key"]:
from pydantic import BaseModel
class CodeReview(BaseModel):
summary: str
issues: list[str]
score: int
agent = create_deep_agent(output_type=CodeReview)
result = await agent.run("Review the auth module", deps=deps)
print(result.output.score) # fully typed
Spawn isolated subagents for parallel workstreams. Each subagent is a full deep agent with its own tool-calling, memory, and context:
agent = create_deep_agent(
subagents=[
{
"name": "researcher",
"description": "Researches topics using web search",
"instructions": "Search the web, synthesize findings, cite sources.",
},
{
"name": "code-reviewer",
"description": "Reviews code for quality, security, and performance",
"instructions": "Check for security issues, N+1 queries, missing tests...",
},
],
)
# Main agent delegates: task(description="Review auth.py", subagent_type="code-reviewer")
from pydantic_deep import create_deep_agent, default_security_hook, Hook, HookEvent
agent = create_deep_agent(
hooks=[
*default_security_hook(), # blocks destructive shell, path traversal, secret leaks
Hook(
event=HookEvent.PRE_TOOL_USE,
command="echo 'Tool: $TOOL_NAME args: $TOOL_INPUT' >> /tmp/audit.log",
),
],
)
Connect GitHub, Figma (OAuth), Context7, DeepWiki, or any custom server β auth handled for you:
from pydantic_deep import create_deep_agent, build_mcp_server, MCPServerConfig
deepwiki = build_mcp_server(
MCPServerConfig(name="deepwiki", transport="http", url="https://mcp.deepwiki.com/mcp")
)
agent = create_deep_agent(mcp_servers=[deepwiki]) # curated defaults via builtin_mcp_servers()
Pydantic Deep Agents auto-discovers and injects project-specific context into every conversation:
| File | Purpose | Who Sees It |
|---|---|---|
AGENTS.md | Project conventions, architecture, instructions | Main agent + all subagents |
CLAUDE.md | Claude Code project instructions | Main agent + all subagents |
SOUL.md | Agent personality, style, communication preferences | Main agent only |
.cursorrules | Cursor editor conventions | Main agent only |
MEMORY.md | Persistent memory β read/write/update tools | Per-agent (isolated) |
Compatible with Claude Code, Cursor, GitHub Copilot, and other agent frameworks. AGENTS.md follows the agents.md spec.
See the full API reference for all options.
A full-featured research deep agent with web UI β built entirely on Pydantic Deep Agents.
Web search (Tavily, Brave, Jina), sandboxed code execution, Excalidraw diagrams, plan mode, report export.
cd apps/deepresearch && uv sync && cp .env.example .env
uv run deepresearch # β http://localhost:8080
See apps/deepresearch/README.md for full setup.
Pydantic Deep Agents uses pydantic-ai's native Capabilities API for all cross-cutting concerns β forking, hooks, memory, skills, context files, teams, and plan mode are all first-class pydantic-ai capabilities.
Pydantic Deep Agents
+---------------------------------------------------------------------+
| |
| +----------+ +----------+ +----------+ +----------+ +---------+ |
| | Planning | |Filesystem| | Subagents| | Skills | | Teams | |
| +----+-----+ +----+-----+ +----+-----+ +----+-----+ +----+----+ |
| | | | | | |
| +------------+-----+------+------------+------------+ |
| | |
| v |
| Forking --> +------------------+ <-- Capabilities |
| Summarization --> | Deep Agent | <-- Hooks |
| Checkpointing --> | (pydantic-ai) | <-- Memory |
| Cost Tracking --> | | <-- MCP |
| +--------+---------+ |
| | |
| +-----------------+-----------------+ |
| v v v |
| +------------+ +------------+ +------------+ |
| | State | | Local | | Docker | |
| | Backend | | Backend | | Sandbox | |
| +------------+ +------------+ +------------+ |
| |
+---------------------------------------------------------------------+
Every component is a standalone package β use only what you need:
| Package | What It Does |
|---|---|
| pydantic-ai-backend | File storage, Docker sandbox, console toolset |
| pydantic-ai-todo | Task planning with subtasks and dependencies |
| subagents-pydantic-ai | Sync/async delegation, background tasks, cancellation |
| summarization-pydantic-ai | LLM summaries or zero-cost sliding window |
| pydantic-ai-shields | Cost tracking, input/output/tool blocking |
agent.run() into N parallel branches sharing history up to the fork pointBranchOverlay filesystem isolation β reads fall through to parent, writes stay localbudget_usd caps, aggregate budget enforcementmanual, auto, auto_with_fallback (default), voteJudgeAgent with structured JudgeVerdict; compute_confidence blends quality, test pass ratio, and consistencyfork_run, inspect_branches, merge_or_select, terminate_branch, diff_branches, fork_cost/fork, /merge, /fork-config, live per-branch streaming panels, judge screen, merge acceptance gatels, read_file, write_file, edit_file, glob, grep, execute β full filesystem accessnavigate, click, type_text, screenshot, execute_js, and more/improve analyzes past sessions, proposes updates to context filesafter_tool_execute before they enter historydefault_security_hook() blocks destructive commands, path traversal, secret leaksfallback_model= chains; fires on API errors, never on auth errorsoutput_typepydantic-deep run) for CI/CD, benchmarks, scripted automation/fork, /merge, /mcp, /improve, /compact, /diff, /model, /skills, /theme, and more@filename file references, !command shell passthrough, clipboard image pastegit clone https://github.com/vstorm-co/pydantic-deep.git
cd pydantic-deep
make install
make test # 100% coverage required
make all # lint + typecheck + test
See CONTRIBUTING.md. Good first issues are labeled here.
pydantic-deep is part of a broader open-source ecosystem for production AI agents:
| Project | Description | Stars |
|---|---|---|
| full-stack-ai-agent-template | Zero to production AI app in 30 minutes. FastAPI + Next.js 15, 6 AI frameworks (incl. pydantic-deep), RAG pipeline, 75+ config options. | |
| pydantic-ai-shields | Drop-in guardrails for Pydantic AI agents. 5 infra + 5 content shields. | |
| pydantic-ai-subagents | Declarative multi-agent orchestration with token tracking. | |
| pydantic-ai-summarization | Smart context compression for long-running agents. | |
| pydantic-ai-backend | Sandboxed execution for AI agents. Docker + Daytona. | |
| content-skills | Claude Code content studio β blog, social, slides, video, infographics β all brand-aware. | |
| production-stack-skills | Claude Code skills for production-grade FastAPI, PostgreSQL, Docker, and observability. |
Want the full stack? Use full-stack-ai-agent-template β it ships pydantic-deep integrated with FastAPI, Next.js, auth, WebSocket streaming, and RAG out of the box.
Browse all projects at oss.vstorm.co
If pydantic-deep saved you from wiring an agent harness by hand β give it a β. It's the single biggest thing that helps the project grow.
MIT β see LICENSE
Made with care by Vstorm
.github/
ISSUE_TEMPLATE/
bug_report.yml
config.yml
feature_request.yml
pull_request_template.md
workflows/
add-to-project.yml
ci.yml
docs.yml
publish.yml
uv-lock-sync.yml
.gitignore
.pre-commit-config.yaml
apps/
acp/
__init__.py
__main__.py
README.md
server.py
cli/
__init__.py
agent.py
app.py
clipboard_image.py
commands.py
config.py
credentials.py
debug_log.py
forking.py
fuzzy.py
goal.py
init.py
interactive.py
keys_cmd.py
keystore.py
known_models.py
local_context.py
main.py
mcp_store.py
messages.py
modals/
__init__.py
_filter_input.py
approval.py
branch_approval.py
command_picker.py
compact.py
confirm.py
context_view.py
diff_picker.py
diff_view.py
fallback_picker.py
file_picker.py
fork_config.py
fork_picker.py
goal_modal.py
help_view.py
history_picker.py
improve_review.py
info_view.py
keys_picker.py
mcp_view.py
merge_picker.py
model_picker.py
remember.py
remind_picker.py
search.py
session_picker.py
settings_view.py
skills_view.py
thinking_picker.py
model_history.py
model_resolve.py
onboarding_cli.py
openrouter_models.py
PRODUCT_REPORT.md
prompts.py
providers.py
reminder.py
run.py
screens/
__init__.py
chat.py
onboarding.py
skills/
build-and-compile/
SKILL.md
code-review/
SKILL.md
data-formats/
SKILL.md
environment-discovery/
SKILL.md
git-workflow/
SKILL.md
performant-code/
SKILL.md
refactor/
SKILL.md
skill-creator/
SKILL.md
systematic-debugging/
SKILL.md
test-writer/
SKILL.md
verification-strategy/
SKILL.md
styles/
__init__.py
app.tcss
themes.py
text_heuristics.py
tips.py
tui.py
update.py
widgets/
__init__.py
ambient.py
assistant_message.py
branch_panel.py
fork_badge.py
fork_overview.py
fork_state.py
fork_tabs.py
header.py
hero.py
input_area.py
judge_loading.py
merge_acceptance.py
message_list.py
notification.py
queued_panel.py
shells_panel.py
spinner.py
status_bar.py
subagents_panel.py
todos_panel.py
tool_call.py
user_message.py
deepresearch/
.dockerignore
.env.example
docker-compose.yml
Dockerfile
pyproject.toml
README.md
skills/
diagram-design/
SKILL.md
report-writing/
SKILL.md
research-methodology/
SKILL.md
src/
deepresearch/
__init__.py
agent.py
app.py
config.py
middleware.py
prompts.py
types.py
static/
app.js
index.html
styles.css
workspace/
DEEP.md
MEMORY.md
workspaces/
00cdd0ac-9908-4c4f-9ad5-d37a9f046601/
canvas.json
events.jsonl
history.json
meta.json
workspace/
DEEP.md
MEMORY.md
01ff4503-f546-4e43-b68f-fd870568f19e/
events.jsonl
history.json
meta.json
workspace/
DEEP.md
050c7d98-a3f7-4a4b-8fc2-848d680b2747/
canvas.json
events.jsonl
history.json
meta.json
workspace/
DEEP.md
MEMORY.md
05f28b7b-77d5-4778-82f7-6fea79fc77f5/
events.jsonl
history.json
meta.json
workspace/
DEEP.md
07f09dd4-9832-4f9d-8f76-357642ac99b7/
events.jsonl
history.json
meta.json
workspace/
DEEP.md
0ae75a58-9865-4f85-a685-2cca24e14754/
events.jsonl
history.json
meta.json
workspace/
DEEP.md
report.md
0b4273f6-4f0f-43a1-ae8a-3f15748965b1/
canvas.json
events.jsonl
history.json
meta.json
workspace/
DEEP.md
MEMORY.md
0f1b63ed-38ce-41ea-922d-0dc8280719cf/
canvas.json
events.jsonl
history.json
meta.json
workspace/
DEEP.md
18dedc13-8223-487d-b2e3-c53fcb026e10/
canvas.json
events.jsonl
history.json
meta.json
workspace/
DEEP.md
MEMORY.md
199cd4ca-14b6-432d-a99f-8b8479cbfcdd/
canvas.json
events.jsonl
history.json
meta.json
workspace/
DEEP.md
MEMORY.md
2403ddf2-9439-4b83-ab68-dc8cfb5bd0e4/
canvas.json
events.jsonl
history.json
meta.json
workspace/
DEEP.md
MEMORY.md
25410f57-74ab-4f7b-98e4-27f338eaa9ee/
canvas.json
events.jsonl
history.json
meta.json
workspace/
DEEP.md
MEMORY.md
264d0376-18ee-4d68-abab-0fdbdf9e6da3/
canvas.json
events.jsonl
meta.json
workspace/
DEEP.md
MEMORY.md
266e0f09-61ce-45e1-9c49-2ffda2acdbde/
workspace/
DEEP.md
2c9a38ce-c6c6-49b2-9ec1-e8bf66d35ad6/
events.jsonl
history.json
meta.json
workspace/
DEEP.md
MEMORY.md
2f3e098f-7310-49cc-b3b8-ed0af3cf92a7/
workspace/
DEEP.md
2f7292ec-8147-48c4-b041-86ae27a7d809/
canvas.json
events.jsonl
history.json
meta.json
workspace/
DEEP.md
MEMORY.md
2f74ba35-d263-4d9f-9428-7c2ebbc78937/
canvas.json
events.jsonl
history.json
meta.json
workspace/
DEEP.md
MEMORY.md
307f9650-0153-43d3-80c6-691d8f638617/
canvas.json
events.jsonl
history.json
meta.json
workspace/
DEEP.md
MEMORY.md
31f5fb93-05b1-4f0f-92b8-1644166d55f8/
events.jsonl
history.json
meta.json
workspace/
DEEP.md
test.txt
34f8d4f5-e9b4-45a5-a59a-71098709f7f1/
canvas.json
events.jsonl
history.json
meta.json
workspace/
DEEP.md
MEMORY.md
37f296ba-6e8e-4370-af2a-10008a75789a/
canvas.json
events.jsonl
history.json
meta.json
workspace/
DEEP.md
MEMORY.md
3cc1f473-012f-4b47-acc0-99db5438ba12/
events.jsonl
history.json
meta.json
workspace/
DEEP.md
41be2527-02ec-4ee3-baef-8f403886fad0/
events.jsonl
history.json
meta.json
workspace/
DEEP.md
42d4d274-94b1-45ca-898b-1b8639841810/
events.jsonl
history.json
meta.json
workspace/
DEEP.md
47506bec-2ee8-4538-9225-e69769817d67/
canvas.json
events.jsonl
history.json
meta.json
workspace/
DEEP.md
MEMORY.md
49a3fb12-742b-433f-b9ff-01142b85c296/
workspace/
DEEP.md
4aa246c3-a9ca-4199-8a8e-6d5dcecfb5e9/
workspace/
DEEP.md
4c0465fe-1a4c-4b75-ab06-0c49d6ad8eb2/
canvas.json
events.jsonl
history.json
meta.json
workspace/
DEEP.md
MEMORY.md
513b0413-3b7e-40f7-a563-69e724f83ba9/
canvas.json
events.jsonl
history.json
meta.json
workspace/
DEEP.md
MEMORY.md
52bbb032-343c-4891-9a32-75faf18d92ba/
events.jsonl
history.json
meta.json
workspace/
DEEP.md
54f6cb40-7946-4719-b560-f74ae1ec5651/
canvas.json
events.jsonl
history.json
meta.json
workspace/
DEEP.md
MEMORY.md
5608266e-481e-4e3c-a116-58b75e3acfc9/
events.jsonl
history.json
meta.json
workspace/
DEEP.md
57277e53-d83c-4b3f-8bc1-dcb730dee232/
canvas.json
events.jsonl
history.json
meta.json
workspace/
... 1049 moreFAQ
pydantic-deepagents is a Claude Code plugin with 14 hand-picked skills for development work, indexed on Flowy. Install it with the command on its page. It includes build-and-compile, code-review, data-formats. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.