fastclaw

module
v0.11.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 19, 2026 License: MIT

README ΒΆ

⚑ FastClaw

A lightweight, self-hosted AI Agent framework written in Go.

Go License Release

Single binary Β· Any LLM Β· Multi-channel Β· Plugin system Β· Web dashboard

Install Β· Quick Start Β· Features Β· Documentation


What is FastClaw?

FastClaw is a self-hosted AI agent runtime. It connects your LLM to chat platforms, executes tools, manages memory, and runs scheduled tasks β€” all from a single Go binary with zero dependencies.

curl -fsSL https://raw.githubusercontent.com/fastclaw-ai/fastclaw/dev/install.sh | bash
fastclaw    # Opens setup wizard in browser

πŸ“¦ Install

One-liner (macOS / Linux):

curl -fsSL https://raw.githubusercontent.com/fastclaw-ai/fastclaw/dev/install.sh | bash

Windows: Download .zip from Releases, extract, double-click fastclaw.exe.

Already installed?

fastclaw upgrade

From source:

git clone https://github.com/fastclaw-ai/fastclaw.git
cd fastclaw && make build

πŸš€ Quick Start

  1. Run fastclaw β€” browser opens the setup wizard at http://localhost:18953
  2. Pick your LLM provider (OpenAI, OpenRouter, DeepSeek, Groq, Ollama...)
  3. Add a Telegram bot token (optional)
  4. Click Launch ⚑

That's it. Your agent is live.

✨ Features

Core
Feature Description
ReAct Agent Loop Multi-turn reasoning + tool calling
Any LLM OpenAI-compatible API (OpenAI, Claude, DeepSeek, Gemini, Groq, Ollama, OpenRouter)
Multi-Agent Multiple agents with independent personalities, memory, and skills
Context Engineering Auto-pruning & LLM compression for long conversations
Dual-Layer Memory MEMORY.md (facts) + searchable conversation logs
Hook System Before/After hooks on prompts, model calls, tool calls
Hot Reload Edit config or SOUL.md β†’ takes effect immediately, no restart
Channels
Channel Status
Telegram βœ… Multi-bot, groups, DMs
Discord βœ… Bot API + Gateway
Slack βœ… Socket Mode
Web Chat βœ… Built-in at /chat
Plugin channels βœ… Add any channel via plugin
Tools
Tool Description
exec Shell commands (with optional Docker sandbox)
read_file / write_file / list_dir File operations
web_fetch Fetch web pages β†’ markdown
web_search Brave Search API
memory_search Search conversation history
message Send messages to any channel
spawn_subagent Delegate tasks to other agents
create_cron_job / list_cron_jobs / delete_cron_job Manage scheduled tasks
load_skill Load skill instructions on demand
MCP tools Connect external tools via Model Context Protocol
Automation
Feature Description
CronTab Schedule tasks: cron expressions, intervals, one-time
Heartbeat Agent wakes every 30 min to check HEARTBEAT.md
Webhooks POST /hooks to trigger agent actions from external systems
Slash Commands /new /compact /status /help /version
Security (inspired by NVIDIA OpenShell)
Feature Description
Sandbox Exec Docker-based isolated command execution
Policy Engine YAML policies for filesystem, network, tools, resources
Credential Manager AES-256-GCM encrypted key storage, env auto-discovery
Tool Loop Detection Breaks after 3 identical consecutive calls
Platform
Feature Description
Web Dashboard Full management UI at localhost:18953
Plugin System JSON-RPC subprocess plugins (any language)
Pluggable Storage File (default), PostgreSQL, SQLite
OpenAI-Compatible API POST /v1/chat/completions with SSE streaming
WebSocket Gateway OpenClaw-compatible protocol
ChatClaw Integration Works as ChatClaw backend runtime

πŸ— Architecture

                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚              FastClaw Gateway                β”‚
                    β”‚                                             β”‚
  Telegram ────────▢│  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
  Discord ─────────▢│  β”‚ Message  β”‚    β”‚    Agent Manager     β”‚  β”‚
  Slack ───────────▢│  β”‚   Bus    │───▢│                      β”‚  β”‚
  Web UI ──────────▢│  β”‚          │◀───│  Agent 1 (Mike)      β”‚  β”‚
  Webhooks ────────▢│  β”‚          β”‚    β”‚  Agent 2 (Mary)      β”‚  β”‚
  Plugins ─────────▢│  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚  Agent N ...         β”‚  β”‚
                    β”‚                   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
                    β”‚                            β”‚                β”‚
                    β”‚        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚
                    β”‚        β–Ό                   β–Ό          β–Ό    β”‚
                    β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
                    β”‚  β”‚  Tools   β”‚  β”‚  Memory  β”‚  β”‚ Sessions β”‚ β”‚
                    β”‚  β”‚          β”‚  β”‚          β”‚  β”‚          β”‚ β”‚
                    β”‚  β”‚ exec     β”‚  β”‚MEMORY.md β”‚  β”‚ JSONL    β”‚ β”‚
                    β”‚  β”‚ files    β”‚  β”‚ logs/    β”‚  β”‚ compress β”‚ β”‚
                    β”‚  β”‚ web      β”‚  β”‚ search   β”‚  β”‚ per-chat β”‚ β”‚
                    β”‚  β”‚ MCP      β”‚  β”‚          β”‚  β”‚          β”‚ β”‚
                    β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
                    β”‚                                             β”‚
                    β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
                    β”‚  β”‚  Cron    β”‚  β”‚ Plugins  β”‚  β”‚  Policy  β”‚ β”‚
                    β”‚  β”‚ Schedule β”‚  β”‚ JSON-RPC β”‚  β”‚  Engine  β”‚ β”‚
                    β”‚  β”‚ Heartbeatβ”‚  β”‚ channels β”‚  β”‚  Sandbox β”‚ β”‚
                    β”‚  β”‚ Webhooks β”‚  β”‚ tools    β”‚  β”‚  Creds   β”‚ β”‚
                    β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
                    β”‚                                             β”‚
                    β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
                    β”‚  β”‚     /v1/chat/completions (SSE)       β”‚  β”‚
                    β”‚  β”‚     /ws (WebSocket)                  β”‚  β”‚
                    β”‚  β”‚     /api/* (REST)                    β”‚  β”‚
                    β”‚  β”‚     Web Dashboard (:18953)           β”‚  β”‚
                    β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“ Agent Workspace

Each agent has its own workspace:

~/.fastclaw/agents/mike/agent/
β”œβ”€β”€ SOUL.md         # Personality & communication style
β”œβ”€β”€ IDENTITY.md     # Name, role, specialty
β”œβ”€β”€ AGENTS.md       # Behavior instructions
β”œβ”€β”€ USER.md         # About the user (auto-learns)
β”œβ”€β”€ TOOLS.md        # Tool usage notes
β”œβ”€β”€ MEMORY.md       # Long-term facts (auto-updated)
β”œβ”€β”€ HEARTBEAT.md    # Periodic task checklist
β”œβ”€β”€ policy.yaml     # Security policy (optional)
β”œβ”€β”€ agent.json      # Model & config overrides
β”œβ”€β”€ memory/         # Searchable conversation logs
β”œβ”€β”€ sessions/       # JSONL conversation files
└── skills/         # Agent-specific skills

πŸ”Œ Plugin System

Extend FastClaw with plugins in any language. Plugins communicate via JSON-RPC over stdin/stdout.

~/.fastclaw/plugins/feishu/
β”œβ”€β”€ plugin.json     # Manifest: id, type, command
└── plugin.py       # Implementation (Python/Node/Go/...)

Plugin types: channel Β· tool Β· provider Β· hook

{
  "plugins": {
    "enabled": true,
    "entries": {
      "feishu": { "enabled": true, "config": {"appId": "...", "appSecret": "..."} }
    }
  }
}

See examples/plugins/echo/ for a complete example.

πŸ–₯ Web Dashboard

Full management UI at http://localhost:18953:

Page What you can do
Overview Gateway status, stats, quick actions
Chat Talk to your agents in the browser
Agents Create, edit, delete agents; edit SOUL.md
Skills View and manage installed skills
Plugins Enable/disable plugins, edit config
Channels Channel status and configuration
Cron Jobs Create and manage scheduled tasks
Settings Provider, storage, webhook config

πŸ”— API

FastClaw exposes an OpenAI-compatible API for programmatic access:

# Chat with an agent (SSE streaming)
curl -X POST http://localhost:18953/v1/chat/completions \
  -H "Authorization: Bearer $TOKEN" \
  -H "x-openclaw-agent-id: mike" \
  -H "Content-Type: application/json" \
  -d '{"model":"auto","messages":[{"role":"user","content":"hello"}],"stream":true}'

# List agents
curl http://localhost:18953/v1/agents -H "Authorization: Bearer $TOKEN"

ChatClaw integration: FastClaw works as a drop-in backend for ChatClaw. Auto-detected via ~/.openclaw/openclaw.json.

πŸ”’ Security

Sandbox execution β€” Run agent commands in Docker containers:

{"sandbox": {"enabled": true, "image": "fastclaw/sandbox:latest"}}

Policy engine β€” Declarative YAML policies:

name: standard
filesystem:
  allowRead: ["/workspace/**"]
  denyWrite: ["/etc/**"]
network:
  mode: allowlist
  outbound:
    - host: api.openai.com
      ports: [443]
tools:
  deny: ["exec"]

Credential manager β€” Encrypted key storage:

fastclaw provider create openai --from-env
fastclaw provider list

πŸ›  CLI Reference

# Core
fastclaw                    # Start (setup wizard or gateway)
fastclaw gateway            # Start gateway explicitly
fastclaw version            # Version info
fastclaw doctor             # Check config health
fastclaw upgrade            # Update to latest

# Agents
fastclaw agent create mike  # Create new agent
fastclaw agent list          # List agents

# Sessions
fastclaw session list        # List sessions
fastclaw session clear KEY   # Clear a session
fastclaw session clear-all   # Clear all sessions

# Skills
fastclaw skill list          # List installed skills
fastclaw skill remove NAME   # Remove a skill

# Plugins
fastclaw plugin list         # List plugins
fastclaw plugin install PATH # Install plugin
fastclaw plugin remove ID    # Remove plugin

# Security
fastclaw provider list       # List credential providers
fastclaw provider create ... # Add credentials
fastclaw sandbox create      # Create Docker sandbox
fastclaw sandbox list        # List sandboxes
fastclaw policy list         # List policies

# Maintenance
fastclaw backup              # Backup ~/.fastclaw/
fastclaw reset               # Reset sessions & memory

🧩 Storage

Backend Use Case Config
File (default) Single user, zero config β€”
SQLite Single user, structured queries {"storage": {"type": "sqlite", "dsn": "file:fastclaw.db"}}
PostgreSQL Multi-tenant cloud {"storage": {"type": "postgres", "dsn": "postgres://..."}}

πŸ›  Development

git clone https://github.com/fastclaw-ai/fastclaw.git
cd fastclaw

make build          # Build binary
make build-web      # Build web UI
make release-local  # Build all platforms
make test           # Run tests

Contributing

Contributions welcome. FastClaw's strength is simplicity β€” keep it that way.

  1. Fork β†’ Branch β†’ Code β†’ PR
  2. go build ./... must pass
  3. Follow Conventional Commits

License

MIT


Built with ⚑ by the FastClaw community

Directories ΒΆ

Path Synopsis
cmd
fastclaw command
internal
api
bus
mcp
store
Package store provides a pluggable storage backend for FastClaw.
Package store provides a pluggable storage backend for FastClaw.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL