The open-source agent harness, in your terminal and on your desktop.
A native-Rust AI agent workspace that codes, automates, remembers, and coordinates — running on your own machine. One binary. Sovereign by design. Built by a small team hacking in public.
Website · Download · Manual · Enterprise · Discussions · Contribute · Supporters
A workspace is no longer one agent. It is a shelf of them. Keep your coding agent, a research agent, and a book-writing agent side by side in the same project, and switch between them from a rail on the left without losing anything — each one keeps its own conversation, scroll position, and half-typed message while you are away.
┌────┬───────────────────────────────────────────────┐
│ MA │ Chat · Terminal · Files · UI │
│ RE │ │
│ BA │ every agent: its own sessions, memory, │
│ │ settings, and browser logins │
│ + │ │
└────┴───────────────────────────────────────────────┘
- Each agent is self-contained. Its own sessions, knowledge bases, settings, and browser profile, in its own folder under
.thclaws/bots/<name>/. An agent's file tools stop at that folder, so one agent cannot read or write another's work. - They run side by side. Every agent is its own process, supervised by the app. An agent that crashes is restarted without disturbing the others, and an agent you switch away from keeps working.
- Add an agent from the rail's
+. Get any Agent Template from thClaws.cloud, or start a blank agent that behaves exactly like opening a new folder. Up to 8 agents run at once. - Desktop and browser alike. The same rail works in the desktop app and in
thclaws --serve.
Your existing workspaces upgrade themselves. The first time v0.126.0 opens a workspace — in the desktop app or with --serve — it moves your project into .thclaws/bots/main/ (git history included) and tells you it did. Scripts keep working: thclaws -p and --cli at the workspace root step into that first agent automatically. An older thClaws opening an upgraded folder finds a note asking you to update, rather than a broken project.
Before you upgrade: anything that holds your project's old path — an editor window, a script with an absolute path, another clone — needs the new one. Commit or back up first if that matters to you. Your home directory is never upgraded, and hosted workspaces on thClaws.cloud are not migrated by this release.
Full list of changes: CHANGELOG.md
Three tabs, one binary — captured from a live thClaws session looking at its own source.
Files (codemirror + tiptap) · Terminal (REPL · slash commands · ANSI tool output) · Chat (markdown render · tool indicators)
A point-and-click shell for the new media tools — Text → Image, Image Edit, Text → Video, and Image → Video — across Google Gemini, OpenAI gpt-image-2, Alibaba Qwen, Veo, and DashScope HappyHorse. Pick a provider/model, set the resolution, hit Generate; finished media lands in a live gallery you can click to reuse as the source for the next run. The same tools (TextToImage / ImageToImage / TextToVideo / ImageToVideo / MediaJobStatus) are callable by the agent from chat too — async video included.
openrouter/fusion fans your question out to a panel of up to 8 models in parallel (each can search the web), then a judge weighs the answers and synthesizes the consensus — multi-model deliberation packaged as a single model id. The new openrouter/fusion+ makes it fully configurable right from the model picker: choose the panel, the judge, the per-model tool-call budget, temperature, reasoning effort, and tool-choice. A practical stand-in when the model you'd reach for isn't available on the platform.
Docs: media tools · Media Studio · Fusion setup
A release most weeks. Full history in the changelog; the things most likely to matter to you:
- Enterprise policy + client-side audit trail — a signed org policy file turns the same binary into a managed client: branding, an extension allow-list, a forced LLM gateway, OIDC SSO, a forced permission mode, and a payload-free record of every tool call. (ENTERPRISE.md · ภาษาไทย)
- OS-level Bash confinement, on by default — shell commands run inside a kernel-enforced filesystem boundary (macOS Seatbelt, Linux Landlock, bubblewrap fallback), so an obfuscated command still can't write outside the workspace.
- Thai PII masking — an opt-in pipeline that detects and tokenizes Thai personal data before it reaches the model, then restores it in the output.
- Movie Maker — screenplay → shots → generated video, end to end.
- Browser automation — drive a real Chrome session as a tool.
- Workflows — deterministic multi-agent scripts (
/workflow run). - GUI Shells — ship a custom HTML surface with your agent, themed and bridged to sessions, memory and tools.
- thclaws.cloud — an agent catalog, a hosted runtime, and a metered gateway for people who don't want to hold provider keys.
thClaws started in April 2026. Since then it has shipped 100+ public releases, drawn 30+ contributors, and lands roughly a release a week — the current release is v0.121.0. It's developed by a small team at ThaiGPT Co., Ltd. — and a meaningful chunk of the codebase comes from outside contributors who heard about it and stayed.
We're aiming for v1.0 = "the multi-platform agent": the same agent loop on your desktop, in your terminal, and bridged into Telegram, Discord, Slack, WhatsApp, Facebook Messenger, and LINE. Telegram, LINE, and Messenger are already shipping. Discord, Slack, and WhatsApp are next — and they're great places to plug in. (Contribute →)
Built in Thailand. Meant for the world.
The same Agent loop, Session, and ToolRegistry back every UX:
- Desktop GUI (
thclaws) — native window with Terminal, Chat, Files, and optional Team tabs. - CLI REPL (
thclaws --cli) — interactive terminal prompt for SSH, headless servers, or zero-GUI workflows. - Non-interactive mode (
thclaws -p "prompt") — single turn, exits. Pipe-friendly for scripts and CI.-vfor token usage on stderr. - Webapp (
thclaws --serve --port 7878) — same engine over WebSocket/HTTP, plus a drop-in API surface so other tools can drive the agent: OpenAI-compatible at/v1/chat/completionsand Anthropic-compatible at/v1/messages. Point the openai or anthropic SDK at it, or setANTHROPIC_BASE_URL. SSH-tunnel for "Claude Code anywhere" without opening a port.
Everything's in one binary. Pick the surface that fits the task, swap the provider, drop in a skill, glue in an MCP server, then walk away while a scheduled job or background agent finishes the work.
- Multi-provider — Anthropic (native + Claude Agent SDK via Claude Code auth), OpenAI (Chat Completions + Responses/Codex), Google Gemini & Gemma, Alibaba DashScope (Qwen), DeepSeek, Z.ai (GLM Coding Plan), NVIDIA NIM, NSTDA Thai LLM (OpenThaiGPT, Typhoon, Pathumma, THaLLE), xAI (Grok), Moonshot (Kimi), MiniMax, OpenRouter, Agentic Press, Azure AI Foundry, Ollama (local + Anthropic-compatible + Cloud), LMStudio, plus a generic OpenAI-compatible slot (
oai/*) and first-class LiteLLM for internal proxies. The shipped catalogue carries 1,100+ models across 27 providers — LLM plus image, video and audio. Switch mid-session with/modelor/provider. - Open standards, not a walled garden — Model Context Protocol for tools,
AGENTS.mdfor project instructions (adopted by Google, OpenAI, Factory, Sourcegraph, Cursor),SKILL.mdwith YAML frontmatter for packaged workflows. Configuration portable between thClaws, other compliant agents, and whatever comes next. - Skills, plugins, MCP servers, hooks — extend the agent without touching Rust. Skills are folders with a
SKILL.md. Plugins bundle skills + commands + agent definitions + MCP servers under one manifest. MCP brings in third-party tools (GitHub, filesystems, browsers, Slack…) over stdio or HTTP-Streamable with OAuth 2.1+PKCE. Hooks run shell scripts on lifecycle events (pre_tool_use,permission_denied,session_start, …). - Three tiers of agent orchestration — model-driven subagents (
Tasktool, blocking, up to 3 levels deep); user-driven concurrent side-channels (/agent <name> <prompt>, parallel to main, own cancel token); multi-process Agent Teams with shared mailbox, task queue, tmux panes, and optional git worktrees. - Knowledge bases (KMS) +
/dream— per-project and per-user wikis under.thclaws/kms/<name>/pages/, indexed by a one-lineindex.md. Grep + read (no embeddings), following Andrej Karpathy's LLM-wiki pattern./dreammines your recent sessions in the background and writes a dated audit-trail page to review withgit diff. - Plan mode —
EnterPlanModeproposes an ordered list of steps you Approve / Cancel / Skip / Retry. Same UX in GUI sidebar and/planslash command. - Schedule recurring jobs —
/schedule addruns an agent on cron, fixed intervals, or filesystem changes (watchWorkspace). In-process scheduler for ephemeral, native daemon (launchd/systemd-user) for survives-reboot. - Long-running loops & overnight builds —
/loopfor fixed-interval iteration,/goalfor audit-driven completion./goal --autois a Ralph-style overnight builder that keeps going until the goal is satisfied or you wake up. - Document workflow — native PDF, DOCX, PPTX, XLSX read + edit + create tools, plus image rendering. Ingest a 50-page PDF, summarize into KMS, produce a follow-up deck — one conversation.
- Memory & project instructions —
AGENTS.md(orCLAUDE.md) walked up fromcwdand injected into the system prompt. Persistent memory store classified asuser/feedback/project/reference, stored as markdown you can read, edit, or commit. - Settings as one file —
.thclaws/settings.json(project) or~/.config/thclaws/settings.json(user). API keys go in the OS keychain by default (macOS Keychain / Windows Credential Manager / Linux Secret Service) with.envfallback for CI. - Session resume —
thclaws --resume lastor--resume <id>. Sessions live as JSONL under.thclaws/state/sessions/— git-friendly, grep-friendly, never opaque. - Safety first — shell commands run inside an OS-enforced filesystem boundary (macOS Seatbelt, Linux Landlock, bubblewrap fallback), so obfuscation doesn't get a command out of the workspace; modes
workspace(default) /strict/off. On top of that: a filesystem sandbox scoped to the working directory, destructive commands flagged, and your approval on every mutating tool call unless you've opted into auto-approve. Permission requests label which agent is asking when multiple are running. - Offline-capable — Ollama (native + Anthropic-compatible) lets you run entirely against a local model. No cloud round-trip, no API key.
- Media, end to end — Media Studio generates images and video (Gemini, OpenAI
gpt-image, Qwen, Veo, LTX, iApp for Thai text) from a point-and-click shell or from chat; Movie Maker takes a screenplay through shots to a finished film. - Browser automation — drive a real Chrome session as a tool: navigate, read the page, fill forms, capture screenshots.
- Workflows & GUI Shells —
/workflow runscripts deterministic multi-agent pipelines; GUI Shells let you ship a custom HTML surface bridged to sessions, memory and tools, themed with the app. - Thai PII masking (opt-in) — detects and tokenizes Thai personal data before the model ever sees it, then restores it on the way out. Per-workspace toggle.
- Enterprise Edition — same binary, your rules — a signed org policy file adds branding, an install allow-list, a forced LLM gateway, OIDC single sign-on, a forced permission mode and tool deny-list, and a payload-free audit trail of every tool call. No licence server, nothing phones home, and every control is in this repo. See ENTERPRISE.md (ภาษาไทย).
- thclaws.cloud — an agent catalog, a hosted runtime, and a metered gateway, for people who'd rather not hold provider keys. Optional; the desktop binary never needs it.
- Deploy what you build — ship landing pages, web apps, APIs, and AI agents through Agentic Press Hosting (partnered with SIS Cloud Service and Artech.Cloud) — or any host you prefer. Deploy flow ships as a plugin (
/plugin install …-deploy), so hosts are swappable. The client never locks you in. - Shell escape — prefix any REPL line with
!to run a shell command directly. No tokens, no approval prompt, no agent round-trip (! git status,! ls).
We'd love your help. thClaws is built in the open by a small team and 30+ contributors so far. Reviews are typically fast, the codebase is approachable, and there's plenty of room to make a real dent.
git clone https://github.com/thClaws/thClaws.git
cd thClaws
# One-shot: build frontend, then cargo build --features gui
./scripts/build.sh # macOS / Linux
./scripts/build.ps1 # Windows PowerShell
# Verification suite (cargo fmt --check, clippy, tsc, cargo test)
./scripts/build.sh --check
# Run
cargo run --features gui # GUI
cargo run -- --cli # CLI REPL
cargo run -- -p "explain crates/core" # one-shotPrerequisites: current stable Rust (what CI builds on — nothing pins an MSRV), Node.js 20+, pnpm 10+ (frontend/package.json pins packageManager: [email protected], so corepack refuses 9). The helper enforces frontend-before-cargo order (the GUI build embeds frontend/dist/index.html at compile time via include_str!). See CONTRIBUTING.md for the full PR workflow.
If you want to land something impactful, these are the places we'd most love a hand:
- 🚀 Discord adapter — bridge the agent into a Discord guild (same shape as our shipping Telegram + Messenger adapters in
crates/core/src/messenger/and friends). - 🚀 Slack adapter — same idea, Slack-side.
- 🚀 WhatsApp adapter — round out the v1.0 multi-platform thesis.
- 🪟 Windows ARM polish — installer, GUI smoke-test on Surface / Snapdragon X.
- 🧠 KMS embeddings (opt-in) — current KMS is grep + read; an optional embeddings layer alongside (not replacing) would be welcome.
- 🌏 i18n & translations — manual chapters and UI strings are EN/TH today; we'd love help with more locales.
- 🧩 Skills, plugins, MCP servers — no Rust needed. Build one, ship it on GitHub, list it on the marketplace. (See Skills documentation.)
- 📝 Docs, examples, walkthroughs — typo fixes welcome, case studies even more welcome.
Browse good first issues or help wanted to start. If you want to land something bigger, drop into Discussions and pitch it first — that's the lowest-friction path.
Everything ships from a single crate, crates/core/. The interesting modules:
| Path | What it does |
|---|---|
crates/core/src/agent.rs + agent_runtime.rs |
The agent loop — turns, tool calls, streaming, cancellation |
crates/core/src/commands.rs |
Slash-command registry (/help, /model, /skill, /schedule, …) |
crates/core/src/kms.rs |
Knowledge bases (per-project + per-user) with KmsRead/Search/Write/Append tools |
crates/core/src/memory.rs |
Persistent memory store (user / feedback / project / reference) |
crates/core/src/mcp.rs |
MCP transport (stdio + HTTP-Streamable + OAuth 2.1 PKCE) |
crates/core/src/hooks.rs |
Lifecycle hooks (pre_tool_use, post_tool_use, …) |
crates/core/src/marketplace.rs |
Skill / plugin marketplace client |
crates/core/src/permissions.rs |
Filesystem sandbox + tool approval flow |
crates/core/src/compaction.rs |
Context-window management |
crates/core/src/messenger/, line/ |
Multi-platform adapters (the v1.0 thesis) |
crates/core/src/confine.rs |
OS-level Bash confinement (Seatbelt / Landlock / bubblewrap) |
crates/core/src/policy/ + audit/ |
Enterprise org policy (Ed25519 verify) and the tool-call audit trail |
crates/core/src/media/ |
Image / video generation providers behind the media tools |
crates/core/src/api_v1/ |
OpenAI-compatible HTTP API served by --serve |
crates/core/src/gui.rs + ipc.rs |
wry/tao ↔ React bridge |
frontend/src/ |
React + Vite GUI (bundled into a single HTML file via include_str!) |
Deeper engineering reference: thclaws-technical-manual/ — agent loop, provider abstraction, KMS internals, side-channel + /dream plumbing, schedule daemon, hooks lifecycle, plan-mode driver, and the rest. Read this before sending non-trivial PRs.
A huge thank you to the people who've shaped thClaws so far:
The fastest path if you want to contribute or just see how it's built. See Contribute → Quick start.
Download for your platform from the Releases page or thclaws.ai/downloads.
Supported: macOS (Apple Silicon & Intel), Windows (x86_64 & ARM64), Linux (x86_64 & ARM64).
Linux runtime dependencies — needed for the GUI binary on headless servers
The Linux GUI binary links against Wayland and webkit2gtk at runtime. Desktop distros (Ubuntu Desktop, Fedora Workstation) ship these by default. Headless servers (cloud VMs, EC2, Docker images without a display) typically don't — thclaws will fail at startup with error while loading shared libraries: libwayland-client.so.0.
Two options:
(a) Use CLI mode — no GUI deps required:
thclaws --cli
thclaws -p "what does src/main.rs do?"(b) Install the GUI deps:
# Debian / Ubuntu
sudo apt install libwayland-client0 libwebkit2gtk-4.1-0 libsoup-3.0-0
# Fedora / RHEL
sudo dnf install wayland libsoup3 webkit2gtk4.1# First run: pick a secrets backend (OS keychain or .env) when prompted
thclaws
# Configure a provider (inside the REPL)
❯ /provider anthropic
❯ /model claude-sonnet-5
# Or try OpenRouter for 350+ models via one key
❯ /provider openrouter
❯ /model openrouter/anthropic/claude-sonnet-5
# Drop an AGENTS.md or CLAUDE.md in your repo — it's read automatically
# Useful slash commands
❯ /help # list everything
❯ /models # list available models for the current provider
❯ /kms # list attached knowledge bases
❯ /skill install https://github.com/anthropics/skills.git
❯ /mcp add github https://mcp.github.com
❯ ! git status # shell escape
# Concurrent and long-running work
❯ /agent translator แปลไฟล์ src/foo.md เป็นภาษาไทย # spawn a side-channel agent
❯ /agents # list active background agents
❯ /dream # consolidate KMS in the background
❯ /schedule add --cron "0 9 * * MON-FRI" "review the day's PRs"
# Headless mode
thclaws -p "summarize CHANGELOG.md" # one-shot to stdout
thclaws -p "summarize CHANGELOG.md" -v # + token usage on stderr
thclaws --resume last # pick up the latest session
# Web access
thclaws --serve --port 7878 # then ssh -L 7878:localhost:7878 user@remoteSettings are read in this precedence (higher wins):
- CLI flags
.thclaws/settings.json(project)~/.config/thclaws/settings.json(user)~/.claude/settings.json(fallback)- Compiled-in defaults
Open-standard files honored directly:
CLAUDE.md/AGENTS.md— system prompt additions, walked up fromcwd.thclaws/skills//.claude/skills/— skill catalog.thclaws/agents//.claude/agents/— subagent definitions.mcp.json/.thclaws/mcp.json— MCP server configuration.thclaws-plugin/plugin.json/.claude-plugin/plugin.json— plugin manifest
API keys are never stored in config files — only the OS keychain (default) or .env.
The same open-source binary becomes a managed client when it finds a signed organization policy file — no separate build, no licence check, nothing phoning home. The policy is signed with your own Ed25519 key, verified against a public key compiled into your build, and a policy that has been edited stops the program rather than silently degrading.
What a policy can set:
| Block | What it does |
|---|---|
branding |
Your product name, logo and support contact, including in the agent's own system prompt |
plugins |
Which hosts plugins, skills and HTTP MCP servers may be installed from |
gateway |
Force every cloud model call through your own gateway (LiteLLM, Portkey, Azure OpenAI, in-house). Users' personal API keys are ignored |
sso |
OIDC single sign-on against your IdP, so joiner/leaver applies to AI usage too |
audit |
A payload-free record of every tool call — who, what, approved how, files touched — to a file or your SIEM |
runtime |
Force the permission mode, deny named tools, switch off remote access and --serve |
Every one of these controls is in this repository. The commercial part is the packaging — a build compiled to trust your key, signing infrastructure, deployment templates and support.
📖 Administrator guide → ENTERPRISE.md · 🇹🇭 ฉบับภาษาไทย → ENTERPRISE-th.md
Commercial enquiries: [email protected]
- 💬 GitHub Discussions — questions, ideas, show-and-tell. The best place to start.
- 🐛 Issues — bug reports + concrete feature requests.
- ✉️ Email — for security disclosures or commercial inquiries: [email protected] (see also SECURITY.md).
In 2026 a mini fundraiser — selling of the e-book Building thClaws — helped fund this project. A huge thank-you to the 155 founding supporters who backed it early: see the Supporters wall →. 🦞🙏
- Official site — thclaws.ai
- Full user manual — thclaws.ai/manual or
user-manual/(EN) /user-manual-th/(ภาษาไทย) — 30 chapters plus a providers/models/prices appendix. Applied case-study walkthroughs are in progress and land chapter by chapter. - Technical manual —
thclaws-technical-manual/— engineering reference. - Contributing — dev setup, PR flow, commit style
- Changelog — version history
- Code of Conduct — Contributor Covenant 2.1
- Security — vulnerability disclosure
- Enterprise (ภาษาไทย) — signed org policy, gateway enforcement, SSO, audit trail, deployment runbook
For books, training, and commercial deployment, see agentic-press.com.
Dual-licensed under either:
at your option. Contributions are accepted under the same dual license — you keep your copyright; we just need permission to ship it.
thClaws is developed by ThaiGPT Co., Ltd. and published under a dual MIT/Apache-2.0 license. The client is free and open source forever. Enterprise Edition, hosting, and support are commercial offerings — see agentic-press.com or contact [email protected].
Built in Thailand. Meant for the world.


