mosaxiv/clawletPublic

Ultra-lightweight and efficient personal AI assistant

AI summary: An ultra-lightweight, single-binary personal AI assistant with built-in hybrid semantic memory search.

Stars
326
Forks
35
Watchers
11
Open issues
0
Open PRs
0
Contributors
~5
Commits
119
Branches
3

GoMITCreated Feb 9, 2026Last push 6mo agoLatest release v0.2.10+1 stars this week

Quick answers

What is clawlet?
An ultra-lightweight, single-binary personal AI assistant with built-in hybrid semantic memory search.
What does clawlet do?
Clawlet is an ultra-lightweight personal AI assistant packaged as a single static binary. It requires no complex runtime or CGO dependencies, making it highly portable across different systems. The assistant features a built-in hybrid semantic memory search powered by an integrated SQLite and sqlite-vec database. Clawlet supports multiple LLM providers including OpenAI, Anthropic, OpenRouter, and Gemini, allowing users to choose their preferred models while maintaining local memory and execution context. It can also integrate directly with chat applications like Telegram, WhatsApp, Discord, and Slack via an internal gateway.
Who is clawlet for?
Developers and power users seeking a fast, portable, and self-contained personal AI assistant with built-in memory and chat integrations.
How do I get started with clawlet?
clawlet onboard --openrouter-api-key "sk-or-..." --model "openrouter/anthropic/claude-sonnet-4.5"
How popular is clawlet on GitHub?
mosaxiv/clawlet has 326 stars and 35 forks on GitHub, and gained 1 stars in the last 7 days.
What license does clawlet use?
mosaxiv/clawlet is released under the MIT license.

Star history

since Feb 8, 2026
0100200300Feb 2026Apr 2026Jul 2026Oct 2026
326 stars as of Oct 2, 2026. Before Jul 29, 2026, reconstructed from public GitHub event archives (checked against the repository's real star total); since then measured daily.

Contribution activity

commits per day, last 52 weeks
SepOctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-09-27: 0 commits2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 5 commits2026-02-10: 8 commits2026-02-11: 4 commits2026-02-12: 7 commits2026-02-13: 28 commits2026-02-14: 7 commits2026-02-15: 10 commits2026-02-16: 3 commits2026-02-17: 0 commits2026-02-18: 6 commits2026-02-19: 20 commits2026-02-20: 1 commit2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 4 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 1 commit2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 1 commit2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 0 commits2026-06-04: 0 commits2026-06-05: 0 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 0 commits2026-06-11: 0 commits2026-06-12: 0 commits2026-06-13: 0 commits2026-06-14: 0 commits2026-06-15: 0 commits2026-06-16: 0 commits2026-06-17: 0 commits2026-06-18: 0 commits2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 0 commits2026-06-23: 0 commits2026-06-24: 0 commits2026-06-25: 0 commits2026-06-26: 0 commits2026-06-27: 0 commits2026-06-28: 0 commits2026-06-29: 0 commits2026-06-30: 0 commits2026-07-01: 0 commits2026-07-02: 0 commits2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 0 commits2026-07-07: 0 commits2026-07-08: 0 commits2026-07-09: 0 commits2026-07-10: 0 commits2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 0 commits2026-07-14: 0 commits2026-07-15: 0 commits2026-07-16: 0 commits2026-07-17: 0 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 0 commits2026-07-21: 0 commits2026-07-22: 0 commits2026-07-23: 0 commits2026-07-24: 0 commits2026-07-25: 0 commits2026-07-26: 0 commits2026-07-27: 0 commits2026-07-28: 0 commits2026-07-29: 0 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits2026-08-02: 0 commits2026-08-03: 0 commits2026-08-04: 0 commits2026-08-05: 0 commits2026-08-06: 0 commits2026-08-07: 0 commits2026-08-08: 0 commits2026-08-09: 0 commits2026-08-10: 0 commits2026-08-11: 0 commits2026-08-12: 0 commits2026-08-13: 0 commits2026-08-14: 0 commits2026-08-15: 0 commits2026-08-16: 0 commits2026-08-17: 0 commits2026-08-18: 0 commits2026-08-19: 0 commits2026-08-20: 0 commits2026-08-21: 0 commits2026-08-22: 0 commits2026-08-23: 0 commits2026-08-24: 0 commits2026-08-25: 0 commits2026-08-26: 0 commits2026-08-27: 0 commits2026-08-28: 0 commits2026-08-29: 0 commits2026-08-30: 0 commits2026-08-31: 0 commits2026-09-01: 0 commits2026-09-02: 0 commits2026-09-03: 0 commits2026-09-04: 0 commits2026-09-05: 0 commits2026-09-06: 0 commits2026-09-07: 0 commits2026-09-08: 0 commits2026-09-09: 0 commits2026-09-10: 0 commits2026-09-11: 0 commits2026-09-12: 0 commits2026-09-13: 0 commits2026-09-14: 0 commits2026-09-15: 0 commits2026-09-16: 0 commits2026-09-17: 0 commits2026-09-18: 0 commits2026-09-19: 0 commits2026-09-20: 0 commits2026-09-21: 0 commits2026-09-22: 0 commits2026-09-23: 0 commits2026-09-24: 0 commits2026-09-25: 0 commits2026-09-26: 0 commits
105 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

What clawlet does

Clawlet is an ultra-lightweight personal AI assistant packaged as a single static binary. It requires no complex runtime or CGO dependencies, making it highly portable across different systems. The assistant features a built-in hybrid semantic memory search powered by an integrated SQLite and sqlite-vec database. Clawlet supports multiple LLM providers including OpenAI, Anthropic, OpenRouter, and Gemini, allowing users to choose their preferred models while maintaining local memory and execution context. It can also integrate directly with chat applications like Telegram, WhatsApp, Discord, and Slack via an internal gateway.

Developers and power users seeking a fast, portable, and self-contained personal AI assistant with built-in memory and chat integrations.

  • Single Static Binary: Distributes as a self-contained executable with no external dependencies or runtimes required.
  • Hybrid Semantic Memory: Utilizes an integrated SQLite and sqlite-vec database to provide out-of-the-box memory search.
  • Multi-Provider Support: Connects to various LLM providers including OpenAI, Anthropic, Gemini, and OpenRouter.
  • Zero Configuration Memory: Provides automatic memory indexing and retrieval without requiring a separate vector database setup.
  • Chat Integration Gateway: Runs as a long-lived gateway to connect the assistant directly to Telegram, WhatsApp, Discord, and Slack.

Where teams use it

Portable AI Assistance

Users run the single binary on their local machine to interact with LLMs without installing complex environments.

Personal Knowledge Management

Individuals use the assistant to query personal notes and chat history using the built-in semantic memory search.

Multi-Model Querying

Developers switch between different LLM providers using the same local terminal interface.

Automated Chatbots

Community managers deploy the gateway mode to provide an intelligent assistant across platforms like Discord and Telegram.

Getting started: clawlet onboard --openrouter-api-key "sk-or-..." --model "openrouter/anthropic/claude-sonnet-4.5"

README

main branch
clawlet

Clawlet

Ultra-lightweight and efficient personal AI assistant

Clawlet is a lightweight personal AI agent with hybrid semantic memory search — a single static binary with no runtime and no CGO.
Bundled SQLite + sqlite-vec. Drop it on any machine and memory search just works.

This project is inspired by OpenClaw and nanobot.

Install

Download from GitHub Releases.

macOS (Apple Silicon):

curl -L https://github.com/mosaxiv/clawlet/releases/latest/download/clawlet_Darwin_arm64.tar.gz | tar xz
mv clawlet ~/.local/bin/

Quick Start

# Initialize
clawlet onboard \
  --openrouter-api-key "sk-or-..." \
  --model "openrouter/anthropic/claude-sonnet-4.5"

# Check effective configuration
clawlet status

# Chat
clawlet agent -m "What is 2+2?"

Configuration (~/.clawlet/config.json)

Config file: ~/.clawlet/config.json

Supported providers

clawlet currently supports these LLM providers:

  • OpenAI (openai/<model>, API key: env.OPENAI_API_KEY)
  • OpenAI Codex (OAuth) (openai-codex/<model>, no API key; login: clawlet provider login openai-codex)
  • OpenRouter (openrouter/<provider>/<model>, API key: env.OPENROUTER_API_KEY)
  • Anthropic (anthropic/<model>, API key: env.ANTHROPIC_API_KEY)
  • Gemini (gemini/<model>, API key: env.GEMINI_API_KEY or env.GOOGLE_API_KEY)
  • Local (Ollama / vLLM / OpenAI-compatible local endpoint) (ollama/<model> or local/<model>, default base URL: http://localhost:11434/v1, API key optional)

Minimal config (OpenRouter):

{
  "env": { "OPENROUTER_API_KEY": "sk-or-..." },
  "agents": { "defaults": { "model": "openrouter/anthropic/claude-sonnet-4-5" } }
}

Agent generation defaults are configurable:

{
  "agents": {
    "defaults": {
      "model": "openrouter/anthropic/claude-sonnet-4-5",
      "maxTokens": 8192,
      "temperature": 0.7
    }
  }
}

Minimal config (Local via Ollama):

{
  "agents": { "defaults": { "model": "ollama/qwen2.5:14b" } }
}

Minimal config (Local via vLLM using the same ollama/ route):

{
  "agents": { "defaults": { "model": "ollama/meta-llama/Llama-3.1-8B-Instruct" } },
  "llm": { "baseURL": "http://localhost:8000/v1" }
}

OpenAI Codex (OAuth):

# one-time login
clawlet provider login openai-codex

# headless environment (SSH / container)
clawlet provider login openai-codex --device-code
{
  "agents": { "defaults": { "model": "openai-codex/gpt-5.1-codex" } }
}

Option: Memory search setup

To enable semantic memory search, add memorySearch to the agent defaults:

{
  "env": {
    "OPENAI_API_KEY": "sk-..."
  },
  "agents": {
    "defaults": {
      "memorySearch": {
        "enabled": true,
        "provider": "openai",
        "model": "text-embedding-3-small"
      }
    }
  }
}

Local embedding (Ollama / OpenAI-compatible local endpoint):

{
  "agents": {
    "defaults": {
      "memorySearch": {
        "enabled": true,
        "provider": "openai",
        "model": "nomic-embed-text",
        "remote": {
          "baseURL": "http://localhost:11434/v1"
        }
      }
    }
  }
}

When enabled:

  • The agent gains memory_search and memory_get tools for retrieving past context.
  • clawlet indexes MEMORY.md, memory.md, and memory/**/*.md for retrieval.
  • The index DB is created at {workspace}/.memory/index.sqlite.

When disabled (default):

  • memorySearch.enabled defaults to false; the search tools are not exposed to the model.
  • Memory files (memory/MEMORY.md, memory/YYYY-MM-DD.md) are still injected into context as usual.
  • Normal chat behavior is otherwise unchanged.

Security

Secure Defaults

  • tools.restrictToWorkspace defaults to true (tools can only access files inside the workspace directory)
  • gateway.listen defaults to 127.0.0.1:18790
  • gateway.allowPublicBind defaults to false

Security Checklist

Item Status Details
Gateway not publicly exposed ✅ Default bind is localhost only. Public bind is rejected unless gateway.allowPublicBind=true is explicitly set.
Filesystem scoped (no /) ✅ File tools block root path, path traversal, encoded traversal, symlink escapes, and sensitive state paths.
Exec tool dangerous-command guard ✅ exec blocks unsafe shell constructs (command chaining, unsafe expansions, redirection/tee, dangerous patterns), blocks sensitive paths, and passes only allowlisted environment variables to subprocesses.

Tools

Multimodal input (audio/image/attachments)

Inbound channel messages can include attachments. clawlet can:

  • send images to vision-capable models,
  • transcribe audio using the configured provider,
  • and inline text-like file attachments into the user context.

Configure under tools.media (the values below are the current default values):

{
  "tools": {
    "media": {
      "enabled": true,
      "audioEnabled": true,
      "imageEnabled": true,
      "attachmentEnabled": true,
      "maxAttachments": 4,
      "maxFileBytes": 20971520,
      "maxInlineImageBytes": 5242880,
      "maxTextChars": 12000,
      "downloadTimeoutSec": 20
    }
  }
}

Chat Apps

Chat app integrations are configured under channels (examples below).

Telegram

Uses Telegram Bot API long polling (getUpdates) so no public webhook endpoint is required.

  1. Create a bot with @BotFather and copy the bot token.
  2. (Optional but recommended) Restrict access with allowFrom.
    • Telegram numeric user ID works best.
    • Username is also supported (without @).

Example config (merge into ~/.clawlet/config.json):

{
  "channels": {
    "telegram": {
      "enabled": true,
      "token": "123456:ABCDEF...",
      "allowFrom": ["123456789"]
    }
  }
}

Then run:

clawlet gateway
WhatsApp

Uses WhatsApp Web Multi-Device. No Meta webhook/public endpoint is required.

  1. Enable channel and (recommended) set allowFrom.
  2. Run login once:
    • clawlet channels login --channel whatsapp
    • Scan the QR shown in terminal from WhatsApp Linked devices.
  3. Start normal runtime with clawlet gateway.

Example config (merge into ~/.clawlet/config.json):

{
  "channels": {
    "whatsapp": {
      "enabled": true,
      "allowFrom": ["15551234567"]
    }
  }
}

Then run:

# one-time login (required before gateway)
clawlet channels login --channel whatsapp

# normal runtime
clawlet gateway

Notes:

  • Send retries are applied for transient/rate-limit errors with exponential backoff.
  • Session state is persisted by default at ~/.clawlet/whatsapp-auth/session.db.
  • You can override store path with sessionStorePath if needed.
  • clawlet gateway does not perform QR login; if not linked, it exits with a login command hint.
Discord
  1. Create the bot and copy the token Go to https://discord.com/developers/applications, create an application, then Bot → Add Bot. Copy the bot token.

  2. Invite the bot to your server (OAuth2 URL Generator) In OAuth2 → URL Generator, choose Scopes: bot. For Bot Permissions, the minimal set is View Channels, Send Messages, Read Message History. Open the generated URL and add the bot to your server.

  3. Enable Message Content Intent (required for guild message text) In the Developer Portal bot settings, enable MESSAGE CONTENT INTENT. Without it, the bot won't receive message text in servers.

  4. Get your User ID (for allowFrom) Enable Developer Mode in Discord settings, then right-click your profile and select Copy User ID.

  5. Configure clawlet channels.discord.allowFrom is the list of user IDs allowed to talk to the agent (empty = allow everyone).

Example config (merge into ~/.clawlet/config.json):

{
  "channels": {
    "discord": {
      "enabled": true,
      "token": "YOUR_BOT_TOKEN",
      "allowFrom": ["YOUR_USER_ID"]
    }
  }
}
  1. Run
clawlet gateway
Slack

Uses Socket Mode (no public URL required). clawlet currently supports Socket Mode only.

  1. Create a Slack app
  2. Configure the app:
    • Socket Mode: ON, generate an App-Level Token (xapp-...) with connections:write
    • OAuth scopes (bot): chat:write, reactions:write, app_mentions:read, im:history, channels:history
    • Event Subscriptions: subscribe to message.im, message.channels, app_mention
  3. Install the app to your workspace and copy the Bot Token (xoxb-...)
  4. Set channels.slack.enabled=true, and configure botToken + appToken.
    • groupPolicy: "mention" (default — respond only when @mentioned), "open" (respond to all channel messages), or "allowlist" (restrict to specific channels).
    • DM policy defaults to open. Set "dm": {"enabled": false} to disable DMs.

Example config (merge into ~/.clawlet/config.json):

{
  "channels": {
    "slack": {
      "enabled": true,
      "botToken": "xoxb-...",
      "appToken": "xapp-...",
      "groupPolicy": "mention",
      "allowFrom": ["U012345"]
    }
  }
}

Then run:

clawlet gateway

CLI Reference

Command Description
clawlet onboard Initialize a workspace and write a minimal config.
clawlet status Print the effective configuration (after defaults and routing).
clawlet agent Run the agent in CLI mode (interactive or single message).
clawlet gateway Run the long-lived gateway (channels + cron + heartbeat).
clawlet channels status Show which chat channels are enabled/configured.
clawlet cron list List scheduled jobs.
clawlet cron add Add a scheduled job.
clawlet cron remove Remove a scheduled job.
clawlet cron toggle Enable/disable a scheduled job.
clawlet cron run Run a job immediately.

clawlet cron add formats

--message is required, and exactly one of --every, --cron, or --at must be set.

# Every N seconds
clawlet cron add --message "summarize my inbox" --every 3600

# Cron expression (5-field)
clawlet cron add --message "daily standup notes" --cron "0 9 * * 1-5"

# Run once at a specific time (RFC3339)
clawlet cron add --message "remind me" --at "2026-02-10T09:00:00Z"

# Deliver to a chat (requires both --channel and --to)
clawlet cron add --message "ping" --every 600 --channel slack --to U012345

🐳 Docker

Using Pre-built Images

Pre-built images are available on GitHub Container Registry:

# docker-compose.yml
services:
  clawlet:
    image: ghcr.io/mosaxiv/clawlet:latest
    volumes:
      - ~/.clawlet:/root/.clawlet
    command: gateway
    restart: unless-stopped
docker compose up -d

Building Locally

# Build the image
docker build -t clawlet .

# Initialize config (first time only)
docker run -v ~/.clawlet:/root/.clawlet --rm clawlet onboard

# Edit config on host to add API keys
vim ~/.clawlet/config.json

# Run the gateway
docker run -v ~/.clawlet:/root/.clawlet clawlet gateway

# Or run a single command
docker run -v ~/.clawlet:/root/.clawlet --rm clawlet agent -m "Hello"
docker run -v ~/.clawlet:/root/.clawlet --rm clawlet status
View on GitHub

Recent activity

commits and pull requests

Releases and announcements

12 total
  1. v0.2.10v0.2.10Mar 24, 2026119 downloads

    ## Changelog * c6ea754c8932c16591a973d30a97abb26b9a12a6 Merge pull request #11 from Alex-wuhu/novita-integration * 8a9367d843abe1bbf13f100bc0896d6fb2043e98 Merge pull request #9 from coohu/ssy * 63eb386558877cc1167695774e52cf40267f3642 feat: add Novita AI as LLM provider * 950e7d996ba09a368c53cb33a6c80b4b76550051 feat: add ShengSuanYun(胜算云) as models provider. --- Released by [GoReleaser](https://github.com/goreleaser/goreleaser).

  2. v0.2.9v0.2.9Feb 24, 2026135 downloads

    ## Changelog * 58c22d5e1bdecbf0750cc62e3174fc5cb551626c Add configurable web_fetch domain and size policy * c72f1b93b8b35055959a08d0c39da7c1fa63e697 Add headers to web_fetch * 75630d25a5dd65fcbde8f4d3ecdd565b42cce090 Add skill registry find/install tools * 849801084c122846349ac7f9b4d884370d5f9a39 Add tests for skill registry tools * 0ea6b1470d8a20a8de740478907106f2d2d60158 Add tests for web_fetch policy settings * 26c43374608f1e2d216a8879b0323b77592c58eb Merge branch 'main' of https://github.com/mosaxiv/clawlet * 7ec97df3e8bffc48c4a86b42b4a64cdc6161d1c2 Merge pull request #8 from audy/audy/add-headers-to-web-fetch * 23eebde8896569cb659f6e130db36b238ed2021a Revise Clawlet description in README.md --- Released by [GoReleaser](https://github.com/goreleaser/goreleaser).

  3. v0.2.8v0.2.8Feb 21, 202653 downloads

    ## Changelog * c72f1b93b8b35055959a08d0c39da7c1fa63e697 Add headers to web_fetch * 7ec97df3e8bffc48c4a86b42b4a64cdc6161d1c2 Merge pull request #8 from audy/audy/add-headers-to-web-fetch * 23eebde8896569cb659f6e130db36b238ed2021a Revise Clawlet description in README.md --- Released by [GoReleaser](https://github.com/goreleaser/goreleaser).

  4. v0.2.7v0.2.7Feb 18, 202653 downloads

    ## Changelog * ea6145264c63376f6a176bbd2efa2b491c643a8c Add dedicated tools section in README * 23ac88f74bc781c539c095417bcb2428989489f5 Add gateway bind guard and security checklist * c1a1677dde3eca5ef1426018bba1f398f773f5ed Add inbound attachment metadata for channels * 7a77cbce93869b5d0d4d8f0f30c4941905174f40 Add inbound media preprocessing for multimodal input * fb87fc3774e7b884f108303e23889f9a2ca432e6 Add multimodal message conversion and audio transcription * 403cd34dade1e103f823a86c1ab3f17430186c8c Clarify default security config wording * ce29e65970c59c268c24e3ebe3baf74155b0fb95 Document exec tool in security checklist * 952ce4164983afbb4a8c4d41b062fbfdbb6db42e Document multimodal media input settings * 8e5296953013556bd997da27a52cdef20ce27de7 Harden exec tool security defaults * 0af3219359e04e3467e732ef4fee4ce98c2ea750 Harden filesystem path safety * 88a0b3e6f97bc71cad0d58f42c3e4e9ce2977cdc Harden media fetching and clarify media defaults * d65b9835b840c6d7efa2069aa4bcc99209f75e33 Refactor codex test payload typing * a0772bbaf7e25a386872a4ddbdc9df67b673a4ed Refactor tool schema payload typing in llm adapters * 4d0062cb5197051733b10ab69e1529e95c768faf Refine security sectio

  5. v0.2.6v0.2.6Feb 18, 202628 downloads

    ## Changelog * 9d2595ea629bf797af23915f9837be5fdccd9c22 Add OpenAI Codex OAuth provider support * c1c333d13fd30a2c98cebe0a42bf9cd5048b4f9f Improve Codex device code polling resilience * d04804784c6835ceafd2fdfba9087957cd666dc1 Inline memory search provider normalization * 827704a490ff88d57839cfb4ff370900f052cbb7 Merge pull request #6 from mosaxiv/local * adeeee3cdf3a50f8497f686e4df1ccb80a53d8f6 Merge pull request #7 from mosaxiv/codex * 9dc1853f77320cac324001d0c70697b38c4bad16 Restrict Codex provider naming to openai-codex * b77193b852d6916811e908f09863df13469ec874 Simplify memory embedding provider config --- Released by [GoReleaser](https://github.com/goreleaser/goreleaser).

Commits per week

last 52 weeks
590Week of 2025-09-27: 0 commitsWeek of 2025-10-04: 0 commitsWeek of 2025-10-11: 0 commitsWeek of 2025-10-18: 0 commitsWeek of 2025-10-25: 0 commitsWeek of 2025-11-01: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 59 commitsWeek of 2026-02-15: 40 commitsWeek of 2026-02-22: 5 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 1 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 0 commitsWeek of 2026-04-12: 0 commitsWeek of 2026-04-19: 0 commitsWeek of 2026-04-26: 0 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 0 commitsWeek of 2026-05-24: 0 commitsWeek of 2026-05-31: 0 commitsWeek of 2026-06-07: 0 commitsWeek of 2026-06-14: 0 commitsWeek of 2026-06-21: 0 commitsWeek of 2026-06-28: 0 commitsWeek of 2026-07-05: 0 commitsWeek of 2026-07-12: 0 commitsWeek of 2026-07-19: 0 commitsWeek of 2026-07-26: 0 commitsWeek of 2026-08-02: 0 commitsWeek of 2026-08-09: 0 commitsWeek of 2026-08-16: 0 commitsWeek of 2026-08-23: 0 commitsWeek of 2026-08-30: 0 commitsWeek of 2026-09-06: 0 commitsWeek of 2026-09-13: 0 commitsWeek of 2026-09-20: 0 commitsSep 27, 2025Sep 20, 2026
105 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 0 commitsSun 1:00 — 1 commitsSun 2:00 — 1 commitsSun 3:00 — 0 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 0 commitsSun 9:00 — 0 commitsSun 10:00 — 0 commitsSun 11:00 — 1 commitsSun 12:00 — 0 commitsSun 13:00 — 1 commitsSun 14:00 — 0 commitsSun 15:00 — 0 commitsSun 16:00 — 1 commitsSun 17:00 — 0 commitsSun 18:00 — 0 commitsSun 19:00 — 0 commitsSun 20:00 — 0 commitsSun 21:00 — 0 commitsSun 22:00 — 0 commitsSun 23:00 — 5 commitsMon 0:00 — 0 commitsMon 1:00 — 0 commitsMon 2:00 — 0 commitsMon 3:00 — 0 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 0 commitsMon 8:00 — 0 commitsMon 9:00 — 0 commitsMon 10:00 — 2 commitsMon 11:00 — 0 commitsMon 12:00 — 0 commitsMon 13:00 — 0 commitsMon 14:00 — 0 commitsMon 15:00 — 0 commitsMon 16:00 — 0 commitsMon 17:00 — 0 commitsMon 18:00 — 0 commitsMon 19:00 — 0 commitsMon 20:00 — 0 commitsMon 21:00 — 1 commitsMon 22:00 — 4 commitsMon 23:00 — 1 commitsTue 0:00 — 1 commitsTue 1:00 — 2 commitsTue 2:00 — 1 commitsTue 3:00 — 0 commitsTue 4:00 — 0 commitsTue 5:00 — 0 commitsTue 6:00 — 0 commitsTue 7:00 — 0 commitsTue 8:00 — 0 commitsTue 9:00 — 0 commitsTue 10:00 — 1 commitsTue 11:00 — 3 commitsTue 12:00 — 0 commitsTue 13:00 — 0 commitsTue 14:00 — 0 commitsTue 15:00 — 0 commitsTue 16:00 — 0 commitsTue 17:00 — 0 commitsTue 18:00 — 0 commitsTue 19:00 — 0 commitsTue 20:00 — 0 commitsTue 21:00 — 0 commitsTue 22:00 — 0 commitsTue 23:00 — 0 commitsWed 0:00 — 2 commitsWed 1:00 — 4 commitsWed 2:00 — 0 commitsWed 3:00 — 0 commitsWed 4:00 — 0 commitsWed 5:00 — 0 commitsWed 6:00 — 0 commitsWed 7:00 — 0 commitsWed 8:00 — 0 commitsWed 9:00 — 1 commitsWed 10:00 — 0 commitsWed 11:00 — 0 commitsWed 12:00 — 0 commitsWed 13:00 — 0 commitsWed 14:00 — 0 commitsWed 15:00 — 0 commitsWed 16:00 — 0 commitsWed 17:00 — 0 commitsWed 18:00 — 0 commitsWed 19:00 — 0 commitsWed 20:00 — 3 commitsWed 21:00 — 0 commitsWed 22:00 — 4 commitsWed 23:00 — 0 commitsThu 0:00 — 0 commitsThu 1:00 — 12 commitsThu 2:00 — 1 commitsThu 3:00 — 0 commitsThu 4:00 — 0 commitsThu 5:00 — 0 commitsThu 6:00 — 0 commitsThu 7:00 — 0 commitsThu 8:00 — 6 commitsThu 9:00 — 1 commitsThu 10:00 — 0 commitsThu 11:00 — 0 commitsThu 12:00 — 0 commitsThu 13:00 — 0 commitsThu 14:00 — 0 commitsThu 15:00 — 0 commitsThu 16:00 — 0 commitsThu 17:00 — 0 commitsThu 18:00 — 6 commitsThu 19:00 — 1 commitsThu 20:00 — 0 commitsThu 21:00 — 0 commitsThu 22:00 — 1 commitsThu 23:00 — 0 commitsFri 0:00 — 0 commitsFri 1:00 — 0 commitsFri 2:00 — 0 commitsFri 3:00 — 0 commitsFri 4:00 — 0 commitsFri 5:00 — 0 commitsFri 6:00 — 0 commitsFri 7:00 — 0 commitsFri 8:00 — 1 commitsFri 9:00 — 0 commitsFri 10:00 — 0 commitsFri 11:00 — 0 commitsFri 12:00 — 0 commitsFri 13:00 — 0 commitsFri 14:00 — 0 commitsFri 15:00 — 0 commitsFri 16:00 — 1 commitsFri 17:00 — 4 commitsFri 18:00 — 2 commitsFri 19:00 — 7 commitsFri 20:00 — 9 commitsFri 21:00 — 0 commitsFri 22:00 — 5 commitsFri 23:00 — 0 commitsSat 0:00 — 1 commitsSat 1:00 — 4 commitsSat 2:00 — 1 commitsSat 3:00 — 0 commitsSat 4:00 — 0 commitsSat 5:00 — 0 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 1 commitsSat 9:00 — 0 commitsSat 10:00 — 0 commitsSat 11:00 — 0 commitsSat 12:00 — 0 commitsSat 13:00 — 0 commitsSat 14:00 — 0 commitsSat 15:00 — 0 commitsSat 16:00 — 0 commitsSat 17:00 — 1 commitsSat 18:00 — 0 commitsSat 19:00 — 0 commitsSat 20:00 — 0 commitsSat 21:00 — 0 commitsSat 22:00 — 0 commitsSat 23:00 — 0 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits111 (93%)
Community commits8 (7%)

119 commits in total over the last year.

DateListRankStars gained
Feb 15, 2026daily#19+184
  • openclaw/openclaw

    The AI that really does things. Any OS. Any Platform. The lobster way. 🦞

    391.3K stars · TypeScript

  • obra/superpowers

    An agentic skills framework & software development methodology that works.

    295.2K stars · Shell

  • NousResearch/hermes-agent

    The agent that grows with you

    251.2K stars · Python

  • n8n-io/n8n

    Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

    206.7K stars · TypeScript

  • firecrawl/firecrawl

    Supercharge your AI agents with data from the web and beyond. Building the library for superintelligence. 🔥

    188.6K stars · TypeScript

  • Significant-Gravitas/AutoGPT

    AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.

    187.7K stars · Python