{"id":47587532,"url":"https://github.com/fastclaw-ai/fastclaw","last_synced_at":"2026-05-23T08:05:14.467Z","repository":{"id":345027509,"uuid":"1176677271","full_name":"fastclaw-ai/fastclaw","owner":"fastclaw-ai","description":"Multi-Agent Framework","archived":false,"fork":false,"pushed_at":"2026-05-20T14:46:48.000Z","size":4357,"stargazers_count":621,"open_issues_count":17,"forks_count":94,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2026-05-20T19:45:09.835Z","etag":null,"topics":["agent-factory","agent-runtime","fastclaw","multi-agent","openclaw-alternative"],"latest_commit_sha":null,"homepage":"https://fastclaw.ai","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fastclaw-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-09T09:07:00.000Z","updated_at":"2026-05-20T17:00:36.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/fastclaw-ai/fastclaw","commit_stats":null,"previous_names":["fastclaw-ai/fastclaw"],"tags_count":62,"template":false,"template_full_name":null,"purl":"pkg:github/fastclaw-ai/fastclaw","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastclaw-ai%2Ffastclaw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastclaw-ai%2Ffastclaw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastclaw-ai%2Ffastclaw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastclaw-ai%2Ffastclaw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fastclaw-ai","download_url":"https://codeload.github.com/fastclaw-ai/fastclaw/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fastclaw-ai%2Ffastclaw/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33387661,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T04:15:53.637Z","status":"ssl_error","status_checked_at":"2026-05-23T04:15:53.242Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-factory","agent-runtime","fastclaw","multi-agent","openclaw-alternative"],"created_at":"2026-04-01T16:35:34.813Z","updated_at":"2026-05-23T08:05:14.232Z","avatar_url":"https://github.com/fastclaw-ai.png","language":"Go","funding_links":[],"categories":["Go","By Category"],"sub_categories":["Other Languages"],"readme":"\u003cdiv align=\"center\"\u003e\n\n# FastClaw\n\nA lightweight AI Agent runtime written in Go.\n\n[![Go](https://img.shields.io/badge/Go-1.25+-00ADD8?style=flat\u0026logo=go)](https://go.dev)\n\n**Single binary - Any LLM - Multi-agent - Sandbox - Cloud-ready**\n\n[Quick Start](#quick-start) - [Architecture](#architecture) - [Features](#features) - [License](#license)\n\n\u003c/div\u003e\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"previews/admin.png\" alt=\"FastClaw admin dashboard\" width=\"900\"\u003e\n  \u003cbr\u003e\n  \u003cem\u003ePlatform admin: agents, models, skills, users, API keys\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"previews/agent.png\" alt=\"FastClaw agent management\" width=\"900\"\u003e\n  \u003cbr\u003e\n  \u003cem\u003ePer-agent management: chat, customize, scoped models / skills / channels / scheduler\u003c/em\u003e\n\u003c/p\u003e\n\n## What is FastClaw?\n\nFastClaw is an **Agent Factory** — it creates, manages, and runs AI agents. Each agent has its own personality (SOUL.md), memory, skills, and tools. FastClaw handles the LLM communication, tool execution, sandbox isolation, and session management.\n\n```bash\n# Install (drops the binary into ~/.local/bin and adds it to PATH)\ncurl -fsSL https://raw.githubusercontent.com/fastclaw-ai/fastclaw/main/install.sh | bash\n```\n\n## Quick Start\n\n### 1. First Run\n\n```bash\nfastclaw\n# Opens setup wizard → configure LLM provider → creates default agent.\n# Foreground mode; ^C to stop. Use `fastclaw daemon start` to run in\n# the background, or `fastclaw daemon install` to register a\n# launchd / systemd service.\n```\n\n### 2. Dashboard\n\nOpen `http://localhost:18953` and login with your admin token.\n\n- **Agents** — Create and manage agents, each with its own personality and model\n- **Skills** — Install shared skills from ClawHub or GitHub\n- **Models** — Configure LLM providers (OpenAI, Anthropic, Ollama, OpenRouter, etc.)\n- **API Keys** — Issue programmatic credentials (admin / user / agent tiers)\n- **Settings** — General (theme), Account (profile + password), Runtime (sandbox config; admin only)\n\n\u003e Non-admin users get scoped access to **Models**, **API Keys**, and\n\u003e **Settings (General + Account)** out of the box. They see admin-shared\n\u003e resources as `Inherited` and can layer their own private overlays on\n\u003e top — same inheritance pattern the agent runtime uses.\n\n### 3. Agent Management\n\nClick an agent to enter its management panel:\n\n- **Chat** — Talk to the agent (debug/test)\n- **Files** — Edit SOUL.md, IDENTITY.md, MEMORY.md, etc.\n- **Skills** — Agent-private skills\n- **Models** — Agent-specific provider + model overrides (shadow system entries by name; agent-scope `agents.defaults.model` overrides the system default)\n- **Channels** — Connect IM bots (Telegram, Discord, Slack) so end-users can chat with the agent on their platform of choice\n- **Scheduler** — Inspect and manage cron jobs the agent created via `create_cron_job` (\"每天 9 点提醒我\", \"5 分钟后叫我\"); pause / delete from the UI\n- **Sessions** — Conversation history\n\n**Sharing.** Each agent has a `Public access` toggle in the Edit dialog\n(default off). When on, anyone with the chat URL — `/agents/{id}/chat/`\n— can chat with the agent under their own account; sessions / memory /\nUSER.md partition per chatter, while SOUL / IDENTITY / skills are\nshared from the owner's row. When off, only the owner (or super_admin)\ncan access it.\n\n## Architecture\n\n```\n~/.fastclaw/\n  fastclaw.db                # SQLite default — users, agents, sessions,\n                             # apikeys, configs, agent_files all live here\n  skills/                    # Shared skills (bundled + installed)\n  agents/\n    \u003cagentId\u003e/agent/skills/        # Agent-private skills (filesystem only)\n```\n\nThe database is the source of truth for everything except skill folders\non disk. SQLite is the default; point `FASTCLAW_STORAGE_DSN` at Postgres\nfor multi-pod deployments.\n\n**There is no `fastclaw.json`.** Bootstrap settings (port, bind, storage\nDSN, sandbox backend) come from `FASTCLAW_*` env vars; everything user-\nfacing (providers, channels, settings, defaults) lives in the `configs`\ntable and is edited through the dashboard or `fastclaw agents config`.\n\n### What FastClaw Stores\n\n| Data | Belongs to | Backing store |\n|------|-----------|---------------|\n| Agent records, SOUL.md / IDENTITY.md / MEMORY.md / agent.json | Agent | DB (`agent_files` table) |\n| Sessions (chat history) | Agent × user | DB (`sessions` table) |\n| API keys, users, scoped configs (providers/channels/settings) | Platform | DB |\n| Skills | Agent / Global | Filesystem (`skills/`, `agents/\u003cid\u003e/agent/skills/`) |\n| User accounts, billing | Application | Your app (ChatClaw, etc.) |\n| Output files | Application | Your app / S3 |\n\n## Features\n\n### LLM Providers\n- OpenAI, Anthropic, Ollama, OpenRouter, Groq, DeepSeek, Mistral, and any OpenAI-compatible API\n- Per-agent provider + model override (agent-scope shadows system by name)\n- Prompt cache support (RawAssistant preservation)\n\n### Channels\n- Per-agent Telegram / Discord / Slack bot bindings — end-users chat with the agent on their platform\n- Tokens validated before save (Telegram `getMe`, Discord `/users/@me`, Slack `auth.test`)\n- Sessions are isolated per channel + chatID, so a user's Telegram thread and Discord thread stay separate\n\n### Tools \u0026 Sandbox\n- Built-in: exec, read_file, write_file, list_dir, web_fetch, web_search, memory_search\n- E2B cloud sandbox or Docker sandbox — automatic skill + workspace hydrate, post-exec sync (sandbox-side files mirrored back to the durable store after every tool call)\n- MCP server support\n- Plugin system (JSON-RPC subprocess)\n\n### Skills\n- Bundled skills: code-runner, image-gen, data-analysis, translation, web-search, skill-creator\n- Install from [ClawHub](https://clawhub.ai) or [skills.sh](https://skills.sh)\n- Agent-private or globally shared\n\n### Memory\n- MEMORY.md — long-term facts, auto-updated by heartbeat\n- Session-based context with full history preservation\n- Thinking/reasoning content preserved for memory extraction\n\n### API\n- OpenAI-compatible `/v1/chat/completions` (streaming)\n- Web chat `/api/chat/stream` (SSE)\n- Live agent push via `/api/chat/subscribe` (SSE) — surfaces cron-fired and other async replies into the open chat panel without a refresh\n- Session management `/api/chat/sessions`\n- Agent CRUD `/api/agents` (`?all=true` returns the cross-tenant view, admin-only)\n- Per-agent scheduler `/api/agents/{id}/cron` (list / toggle / delete)\n- Provider management `/api/config`\n- Skill install `/api/skills/install` (ClawHub + GitHub)\n- API key management `/api/apikeys` (per-user; tiers: admin / user / agent)\n- User management `/api/users` (admin) — top-level CRUD + nested\n  `/api/users/{id}/apikeys` and `/api/users/{id}/agents` for\n  admin-driven provisioning. The `agents` endpoint accepts\n  `forkFrom` to clone an existing agent's identity (SOUL / IDENTITY /\n  skills / model defaults) into the new user's namespace — primary\n  building block for \"user buys a bot\" flows. Per-user `agent_quota`\n  caps how many agents a non-admin can self-create\n  (`-1` = unlimited, `0` = admin-provisioned only).\n- App-user provisioning `POST /v1/users` — third-party apps mint a stable fastclaw user_id per end-user, idempotent on `(api_key, external_id)`. Or pass `user` on `/v1/chat/completions` (or `X-Fastclaw-End-User` header) for lazy mint on first call\n\n## Configuration\n\nBootstrap is **env-only**. Everything that needs to change at runtime\n(providers, models, channels, defaults, sandbox toggle) lives in the\ndatabase and is edited through the dashboard or `fastclaw agents config`.\n\n| Env var | Default | What it does |\n|---|---|---|\n| `FASTCLAW_HOME` | `~/.fastclaw` | Where the SQLite DB and skill folders live. |\n| `FASTCLAW_PORT` | `18953` | Gateway HTTP port. |\n| `FASTCLAW_BIND` | `loopback` | `loopback` (127.0.0.1) or `all` (0.0.0.0). |\n| `FASTCLAW_STORAGE_TYPE` | `sqlite` | `sqlite` or `postgres`. |\n| `FASTCLAW_STORAGE_DSN` | empty | Postgres DSN, e.g. `postgres://u:p@host:5432/db?sslmode=disable`. Empty = sqlite at `$FASTCLAW_HOME/fastclaw.db`. |\n| `FASTCLAW_STORAGE_AUTO_MIGRATE` | `true` | Apply schema migrations on boot. |\n| `FASTCLAW_SANDBOX_ENABLED` | dashboard | Override the Settings → Runtime toggle. |\n| `FASTCLAW_SANDBOX_BACKEND` | dashboard | `docker` or `e2b`. |\n| `FASTCLAW_SANDBOX_IMAGE` | dashboard | Docker image (Docker backend) or template id (E2B). |\n| `FASTCLAW_OBJECT_STORE_*` | unset | S3-compatible blob store for distributed deploys (multi-pod skill / file hydration). |\n| `FASTCLAW_LOG_LEVEL` | `info` | `debug` / `info` / `warn` / `error`. |\n\nAnything not on this list — providers, models, default model, skill\ncatalog, channels, plugin config, scheduler — is configured at runtime\nthrough the web UI (`http://localhost:18953`) or the CLI (`fastclaw\nagents config`, `fastclaw provider`, `fastclaw skill`).\n\n## Deployment\n\n### Local\n\n```bash\nfastclaw                    # foreground (^C to stop)\nfastclaw daemon start       # background (logs at ~/.fastclaw/daemon.log)\nfastclaw daemon status\nfastclaw daemon stop\nfastclaw daemon install     # register as a launchd / systemd service\n```\n\n### Manage agents from the CLI (`fastclaw agents …`)\n\nThe `fastclaw agents` subcommand is a thin convenience wrapper around the\nsame store the dashboard uses. Agents you create here show up in the web\nUI and vice-versa — there's only ever one fastclaw deployment per\n`FASTCLAW_HOME`.\n\n```bash\n# Zero to a chattable agent in one command. On a fresh install this\n# creates an `admin` user (random password printed once) and starts\n# the gateway daemon if it isn't already running.\nfastclaw agents init alpha \\\n  --provider openai \\\n  --model openai/gpt-4o-mini \\\n  --api-key-env OPENAI_API_KEY\n\n# Set per-agent overrides (model, temperature, sandbox, …).\nfastclaw agents config alpha set temperature 0.7\nfastclaw agents config alpha set sandbox.enabled true\n\n# Upload the agent's identity files.\nfastclaw agents files put alpha SOUL.md ./SOUL.md\nfastclaw agents files put alpha IDENTITY.md ./IDENTITY.md\n\n# Inspect.\nfastclaw agents ls\nfastclaw agents config alpha get\nfastclaw agents files ls alpha\n\n# Tear down.\nfastclaw agents rm alpha\n```\n\nThe CLI opens the operator's store directly (sqlite at\n`~/.fastclaw/fastclaw.db`, or whatever `FASTCLAW_STORAGE_DSN` points at)\nand writes through the same code paths the gateway uses. It does not\nrequire the gateway to be running — but `agents init` will spin one up\nin the background so a fresh agent is immediately reachable at\n`http://localhost:18953`. Subsequent CLI writes (`config set`,\n`files put`, `rm`, `init` re-runs) send `SIGHUP` to the running gateway\nso it hot-reloads without restart. Windows lacks `SIGHUP` delivery, so\nthe CLI falls back to a hint asking you to run `fastclaw daemon restart`.\n\nThe default owner is the `admin` user. On an empty database\n`agents init` creates that account with a generated password (printed\nonce); on a populated database it expects `admin` to exist or\n`--username` to point at an existing user.\n\n#### Resolving agents\n\nCLI commands accept either a display name or an `agt_…` id:\n\n- `fastclaw agents config alpha get` — by display name (must be unique)\n- `fastclaw agents config agt_d3c4a5… get` — by id\n\nIf the same text matches one agent's id and a different agent's display\nname, the CLI reports an ambiguity instead of guessing.\n\nWhen you create an agent via `agents init \u003cname\u003e`, the name is the\ndisplay name and the id is auto-generated. To update an agent that was\ncreated via the dashboard, pass its id explicitly:\n\n```bash\nfastclaw agents init \"Cool Agent\" --id agt_d3c4a5...\n```\n\n#### Configuration keys\n\nPer-agent (saved at `scope=agent` under the agent's id):\n\n- `model`, `temperature`, `maxTokens`, `thinking`, `policy`\n- `sandbox`, `sandbox.enabled`, `sandbox.backend`, `sandbox.image`, `sandbox.network`\n\nSystem-wide (saved at `scope=system`):\n\n- `plugins`, `plugins.\u003cname\u003e`\n- `skills.install`, `skills.entries`, `skillsLearner`\n- `tools.providers`, `tools.categories`\n- `objectstore`, `taskqueue`, `heartbeat`, `memory`, `privacy`, `hooks`, `teams`\n\nProvider configs live in `scope=system` and are addressed as\n`provider.\u003cname\u003e.\u003cfield\u003e`:\n\n```bash\nfastclaw agents config alpha set provider.openai.apiKeyEnv OPENAI_API_KEY\nfastclaw agents config alpha set provider.openrouter.apiBase https://openrouter.ai/api/v1\nfastclaw agents config alpha set provider.openai.model gpt-4o      # adds; idempotent\nfastclaw agents config alpha set provider.openai.models '[]'        # explicit clear\n```\n\nProvider presets ship for `openai`, `openrouter`, `anthropic`, `ollama`,\n`groq`, `deepseek`, `mistral` — `--api-key-env` populates `apiKey` from\nthe named environment variable, the rest comes from the preset.\n\n#### Agent system files\n\nThe CLI reads and writes the same `agent_files` table the dashboard's\nfile editor uses. Allowlisted filenames: `SOUL.md`, `IDENTITY.md`,\n`USER.md`, `BOOTSTRAP.md`, `MEMORY.md`, `HEARTBEAT.md`, `AGENTS.md`,\n`TOOLS.md`, `agent.json`.\n\n| Subcommand | Purpose |\n|---|---|\n| `agents init \u003cname\u003e` | Create or update an agent (provider/model/sandbox/files) |\n| `agents ls` | List all agents in the store |\n| `agents config \u003cname\u003e get\\|set [key] [value]` | Read or update a config value |\n| `agents files ls\\|put\\|get \u003cname\u003e` | Read / write the agent's system files |\n| `agents rm \u003cname\u003e` | Delete the agent record and its system files |\n\n### Docker\n```bash\ncd deploy/docker \u0026\u0026 ./start.sh\n```\n\n### Kubernetes\n\n```yaml\nenv:\n  - name: FASTCLAW_BIND\n    value: \"all\"\n  - name: FASTCLAW_STORAGE_TYPE\n    value: \"postgres\"\n  - name: FASTCLAW_STORAGE_DSN\n    valueFrom:\n      secretKeyRef:\n        name: fastclaw-db\n        key: dsn\n  - name: FASTCLAW_OBJECT_STORE_ENDPOINT\n    value: \"s3.amazonaws.com\"\n  - name: FASTCLAW_OBJECT_STORE_BUCKET\n    value: \"fastclaw-skills\"\n```\n\nNo config file is mounted — bootstrap is env-only. See `deploy/k8s/`\nfor full manifests.\n\n## Building\n\n```bash\nmake build                  # builds the web bundle and the Go binary → bin/fastclaw\nmake install                # installs to $HOME/.local/bin (override with PREFIX=)\nmake release-local          # cross-compile darwin / linux / windows into dist/\n```\n\nThe Makefile bakes the version, commit, and build date into the binary\nvia `-ldflags`. CI uses these targets too — see `.github/workflows/`.\n\n## License\n\nFastClaw is **source-available** under the [FastClaw Community License](LICENSE),\nbased on Apache License 2.0 with additional conditions.\n\n**TL;DR:**\n- ✅ Use it commercially as a backend for your own product\n- ✅ Internal deployment within your organization\n- ❌ Hosting FastClaw as a multi-tenant SaaS for unrelated organizations\n  (without a commercial license)\n- ❌ Removing or modifying the FastClaw branding in the dashboard UI\n\nThe full Apache 2.0 text is reproduced inside the [LICENSE](LICENSE) file\nunder the addendum. For commercial licensing inquiries: support@thinkany.ai.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastclaw-ai%2Ffastclaw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffastclaw-ai%2Ffastclaw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastclaw-ai%2Ffastclaw/lists"}