The open-source alternative to OpenAI Codex, Cursor, Claude Code, and DeerFlow. AI agent framework with sandboxed code execution, sub-agent orchestration, MCP, skills marketplace, session forking, FTS5 search, multi-agent teams, and a native Tauri desktop app.
English Β· δΈζ Β· νκ΅μ΄ Β· ζ₯ζ¬θͺ Β· FranΓ§ais Β· Π ΡΡΡΠΊΠΈΠΉ Β· EspaΓ±ol Β· Ψ§ΩΨΉΨ±Ψ¨ΩΨ©
](https://opensource.org/licenses/Apache-2.0)
Website Β· Docs Β· Quick Start Β· Desktop App Β· Skills Β· Contributing
Quill is a super-agent framework β an AI that can research, code, analyze data, generate documents, and orchestrate sub-agents to do almost anything. Unlike closed-source alternatives, Quill is fully open-source, self-hostable, and extensible.
| Feature | Quill | OpenAI Codex | Cursor | Claude Code | DeerFlow | OpenClaw |
|---|---|---|---|---|---|---|
| Open source | β Apache 2.0 | β | β | β | β MIT | β MIT |
| Self-hosted | β | β | β | β | β | β |
| Sandboxed execution | β | β | β | β | β | β |
| Sub-agent orchestration | β | β | β | β | β | β |
| Desktop app | β Tauri | β | β | β | β | β |
| MCP integration | β Dual-role | β | β | β | β | β |
| Skills marketplace | β | β | β | β | β | β |
| Session forking | β | β | β | β | β | β |
| FTS5 search | β | β | β | β | β | β |
| Multi-agent teams | β | β | β | β | β | β |
| Workflow engine | β | β | β | β | β | β |
| Self-improving skills | β | β | β | β | β | β |
| Adaptive permissions | β | β | β | β | β | β |
| IM channels (5+) | β | β | β | β | β | β |
| Tool receipts | β | β | β | β | β | β |
| Off-peak deferred tasks | β | β | β | β | β | β |
| Message queue while busy | β | β | β | β | β | β |
| Workspace checkpoints / rewind | β | β | β | β | β | β |
| Read-only command auto-approve | β | β | β | β | β | β |
| Risk-tiered tool review | β | β | β | β | β | β |
| Durable kanban board | β | β | β | β | β | β |
Multi-source search with cross-validation and cited reports. Quill orchestrates multiple sub-agents to investigate topics in depth.
Safely run Python / Bash / file operations in an isolated sandbox environment with full filesystem access. OS-level security with network isolation.
Main agent dispatches specialized sub-agents for parallel complex tasks β general-purpose, bash, research, and custom agents. Up to 128 concurrent sub-agents with AgentSwarm.
Install skills to extend capabilities. Build custom extensions with lifecycle hooks (pre_model, post_model, pre_tool, post_tool). Install from GitHub repos or any URL.
Branch any conversation at any point. Forked threads carry full conversation history via checkpoint copy β experiment without disrupting the original.
BM25-ranked full-text search across all thread messages with snippet extraction and prefix matching. Find any past conversation instantly.
Continuously records user profile and conversation history with confidence-based fact eviction. Background "dreaming" consolidation promotes short-term signals to durable long-term memory.
Supervisor, round-robin, handoff, and hierarchical team patterns. Shared task board with DAG dependencies and peer messaging.
DAG-based agent orchestration with parallel execution, retry, and conditional branching β plus dynamic workflows: author orchestration as plain TypeScript scripts (top-level await, agent()/ask()/run() facade) with journal-backed amend/resume so finished steps are never re-paid.
Tools declare safety properties (read-only, destructive, idempotent, open-world) that feed into risk-level-based authorization. Deterministic security scanner blocks malicious skills offline. Delegated subagent results are verified by deterministic acceptance criteria (file existence, recorded test runs) β not self-reported.
Periodic agent turns that check whether anything needs attention β with a persistent monitor checklist, active-hours windows, and cost-controlled isolated sessions. Scheduled-task outcomes can be delivered straight to your IM (Slack / Feishu / DingTalk / Telegram webhooks).
DeepSeek / OpenAI / Anthropic / vLLM / Ollama and more, with roleβmodel overlay routing. UI supports 8 languages. IM channels: Telegram, Slack, Discord, Feishu, DingTalk. Conversations can be shared via sanitized, integrity-hashed read-only links β and imported from Claude Code.
Tauri 2 desktop app with native filesystem access, system tray, workspace sync, and auto-updates. Available for macOS, Windows, and Linux.
Download the latest release for your platform from the Releases page.
# macOS
brew install --cask quill # coming soon
# Or download .dmg/.msi/.AppImage from Releases# Clone the repository
git clone https://github.com/CreamyLong/quill.git
cd quill
# Interactive setup wizard (2 minutes)
make setup
# Start all services with hot-reload
make dev
# Open http://localhost:2126 in your browserdocker compose up -d
# Open http://localhost:2126# One-command desktop (builds frontend, starts Gateway, launches Tauri)
make desktop
# Or manually:
cd desktop
npm install
npm run tauri dev # first build ~3-5 min, then incremental
# Production build β .dmg/.msi/.AppImage
npm run tauri buildMulti-source search with cross-validation and cited reports. Quill orchestrates multiple sub-agents to investigate topics in depth.
Safely run Python / Bash / file operations in an isolated sandbox environment with full filesystem access.
Main agent dispatches specialized sub-agents for parallel complex tasks β general-purpose, bash, and custom agents.
Install skills to extend capabilities. Build custom extensions with lifecycle hooks (pre_model, post_model, pre_tool, post_tool).
Continuously records user profile and conversation history with confidence-based fact eviction policies. Background "dreaming" consolidation promotes strong short-term signals to durable long-term memory (Light β REM β Deep phases).
Periodic agent turns that check whether anything needs attention β with a persistent monitor scratch checklist, active-hours windows, and cost-controlled isolated sessions.
Tools declare safety properties (read-only, destructive, idempotent, open-world) that feed into risk-level-based authorization. Deterministic security scanner blocks malicious skills offline before any LLM call.
DeepSeek / OpenAI / Anthropic / vLLM / Ollama and more. UI supports English, δΈζ, and νκ΅μ΄.
graph TB
subgraph "Client Layer"
WEB[Next.js Frontend<br/>React + Tailwind]
IM[IM Channels<br/>Telegram, Slack, Discord<br/>Feishu, DingTalk]
DESK[Desktop App<br/>Tauri 2]
end
subgraph "Gateway Layer (Port 8001)"
GW[Gateway API<br/>LangGraph Runtime]
SB[Stream Bridge<br/>SSE Delivery]
RM[Run Manager<br/>Task Lifecycle]
end
subgraph "Agent Runtime"
LA[Lead Agent<br/>StateGraph]
MW[Middleware Chain<br/>38+ Middlewares]
SA[Sub-Agent Executor<br/>Thread Pool]
end
subgraph "Infrastructure"
DB[(Database<br/>SQLite / Postgres)]
SK[Skills System<br/>SKILL.md + Marketplace]
MCP[MCP Servers<br/>Dual-Role]
MEM[Memory System<br/>LLM Extraction + Eviction]
end
WEB -->|HTTP/SSE| GW
IM -->|Webhook| GW
DESK -->|HTTP/SSE| GW
GW --> LA
GW --> SB
GW --> RM
LA --> MW
LA --> SA
LA -->|Tool Calls| MCP
LA -->|Read/Write| DB
LA -->|Load/Save| SK
LA -->|Extract/Inject| MEM
SA -->|Background| LA
flowchart LR
START([START]) --> PREP[Prepare<br/>Inject System Prompt]
PREP --> BM[beforeModel<br/>38+ Hooks]
BM --> MODEL[Model Call<br/>LLM Inference]
MODEL --> AM[afterModel<br/>Post-Processing]
AM --> TOOLS{Tool Calls?}
TOOLS -->|Yes| EXEC[Execute Tools<br/>Sandbox + MCP]
EXEC --> AA[afterAgent<br/>State Updates]
AA -->|Continue| BM
TOOLS -->|No| END([END])
AA -->|Finish| END
style START fill:#4ade80,stroke:#166534
style END fill:#f87171,stroke:#991b1b
style MODEL fill:#60a5fa,stroke:#1e40af
style EXEC fill:#fbbf24,stroke:#92400e
flowchart TB
subgraph "Input Layer"
M1[1. Input Sanitization<br/>Prompt Injection Defense]
M2[2. Tool Output Budget<br/>Size Caps]
M3[3. Thread Data<br/>Per-Thread Directories]
end
subgraph "Context Layer"
M4[4. Dynamic Context<br/>Date + Memory Reminders]
M5[5. Skill Activation<br/>/skill-name Slash Commands]
M6[6. Durable Context<br/>Delegation + Skill References]
end
subgraph "Safety Layer"
M7[7. Guardrail<br/>Pre-Tool Authorization]
M8[8. Sandbox Audit<br/>Security Logging]
M9[9. Tool Error Handling<br/>Graceful Recovery]
end
subgraph "Model Layer"
M10[10. LLM Error Handling<br/>Retry + Backoff]
M11[11. System Message Coalescing<br/>Provider Compatibility]
M12[12. Deferred Tool Filter<br/>MCP Schema Hiding]
end
subgraph "Output Layer"
M13[13. Summarization<br/>Context Reduction]
M14[14. Loop Detection<br/>Repetition Breaker]
M15[15. Token Budget<br/>Per-Run Limits]
M16[16. Clarification<br/>User Interaction]
end
M1 --> M2 --> M3 --> M4 --> M5 --> M6
M6 --> M7 --> M8 --> M9 --> M10 --> M11 --> M12
M12 --> M13 --> M14 --> M15 --> M16
style M1 fill:#dbeafe,stroke:#1e40af
style M4 fill:#fef3c7,stroke:#92400e
style M7 fill:#fee2e2,stroke:#991b1b
style M10 fill:#dcfce7,stroke:#166534
style M13 fill:#f3e8ff,stroke:#6b21a8
sequenceDiagram
participant U as User
participant LA as Lead Agent
participant EX as Sub-Agent Executor
participant SA as Sub-Agent
participant T as Tools
U->>LA: Send message
LA->>LA: Model generates tool_call
LA->>EX: task(description, type)
EX->>SA: Create sub-agent graph
loop Execute turns
SA->>T: Tool calls (bash, read, write)
T-->>SA: Results
SA->>SA: Model reasoning
end
SA-->>EX: Final result
EX-->>LA: task_completed event
LA-->>U: Response with results
Quill ships with 20+ built-in skills: academic review, deep research, data analysis, PPT generation, chart visualization, image / video / music generation, frontend design, GitHub research, newsletter, and more.
Extensions enable third-party developers to build plugins that hook into the agent lifecycle:
pre_model/post_modelβ intercept and modify model callspre_tool/post_toolβ intercept and modify tool executionon_agent_start/on_agent_endβ setup and cleanup
Connect additional MCP services via extensions_config.json.
# Install from GitHub repo
curl -X POST http://localhost:8001/skills/marketplace/install \
-H "Content-Type: application/json" \
-d '{"source": "github", "target": "owner/repo"}'
# Install from URL
curl -X POST http://localhost:8001/skills/marketplace/install \
-H "Content-Type: application/json" \
-d '{"source": "url", "target": "https://example.com/skill.md"}'| Layer | Technology |
|---|---|
| Frontend | Next.js 15 Β· React 19 Β· Tailwind CSS Β· shadcn/ui |
| Backend | LangGraph Β· TypeScript Β· node:sqlite |
| Desktop | Tauri 2 (Rust + WebView) |
| Database | SQLite / PostgreSQL Β· LangGraph Checkpointer |
| Agent Runtime | StateGraph Β· 38+ Middlewares Β· Sub-Agent Executor |
| Protocols | MCP (Model Context Protocol) Β· SSE Β· HTTP/SSE/Stdio |
Quill supports eight languages:
| Language | Locale | Status |
|---|---|---|
| English | en-US |
β Complete |
| δΈζ (Chinese) | zh-CN |
β Complete |
| νκ΅μ΄ (Korean) | ko-KR |
β Complete |
| ζ₯ζ¬θͺ (Japanese) | ja-JP |
β Complete |
| FranΓ§ais (French) | fr-FR |
β Complete |
| Π ΡΡΡΠΊΠΈΠΉ (Russian) | ru-RU |
β Complete |
| EspaΓ±ol (Spanish) | es-ES |
β Complete |
| Ψ§ΩΨΉΨ±Ψ¨ΩΨ© (Arabic) | ar-SA |
β Complete |
Switch languages in Settings β Appearance β Language.
Quill was systematically evaluated against 10 leading harness frameworks. See harness-framework-comparison.md for the full analysis.
Quill matches or exceeds all 10 frameworks on 18 of 22 capability dimensions.
| Framework | Stars | LangGraph | Sandbox | Memory | MCP | Sub-Agent | Desktop | Teams | Search |
|---|---|---|---|---|---|---|---|---|---|
| Quill | β | β | β | β | β | β | β | β | β |
| DeerFlow | βββββ | β | β | β | β | β | β | β | β |
| OpenWork | βββ | β | β | β | β | β | β | β | β |
| DeepSeek Harness | βββ | β | β | β | β | β | β | β | β |
| Kimi Code | ββββ | β | β | β | β | β | β | β | β |
| OpenAI Codex | βββββ | β | β | β | β | β | β | β | β |
| CrewAI | βββββ | β | β | β | β | β | β | β | β |
| AutoGen | ββββ | β | β | β | β | β | β | β | β |
| OpenClaw | βββ | β | β | β | β | β | β | β | β |
| Hermes Agent | βββ | β | β | β | β | β | β | β | β |
Issues and PRs are welcome! See CONTRIBUTING.md for details.
Areas where we especially need help:
- π Translations β help us support more languages
- π§© Skills β create and share new skills
- π Documentation β improve docs, write tutorials
- π Bug reports β file issues with reproduction steps
- β Star the repo β if you find Quill useful, a star goes a long way!
If Quill is useful to you, please consider giving it a star! Stars help others discover the project and motivate continued development.
Built with β€οΈ by the Quill team Β· Inspired by OpenWork, DeerFlow, OpenClaw, Hermes Agent, Kimi Code, Codex, CrewAI, AutoGen, and awesome-harness-engineering