CoWork-OS
Operating System for your personal AI Agents with Security-first approach. Multi-channel (WhatsApp, Telegram, Discord, Slack, iMessage), multi-provider (Claude, GPT, Gemini, Ollama), fully self-hosted.
Stars: 96
README:
██████╗ ██████╗ ██╗ ██╗ ██████╗ ██████╗ ██╗ ██╗ ██████╗ ███████╗ ██╔════╝██╔═══██╗██║ ██║██╔═══██╗██╔══██╗██║ ██╔╝ ██╔═══██╗██╔════╝ ██║ ██║ ██║██║ █╗ ██║██║ ██║██████╔╝█████╔╝ ██║ ██║███████╗ ██║ ██║ ██║██║███╗██║██║ ██║██╔══██╗██╔═██╗ ██║ ██║╚════██║ ╚██████╗╚██████╔╝╚███╔███╔╝╚██████╔╝██║ ██║██║ ██╗ ╚██████╔╝███████║ ╚═════╝ ╚═════╝ ╚══╝╚══╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝
The operating system for personal AI assistants
Your AI needs a secure home. CoWork OS provides the runtime, security layers, and I/O channels to run AI agents across WhatsApp, Telegram, Discord, Slack, Microsoft Teams, Google Chat, iMessage, Signal, Mattermost, Matrix, Twitch, LINE, BlueBubbles, and Email — with the control you expect from an operating system.
| 20+ AI Providers | Claude, OpenAI, Gemini, Bedrock, OpenRouter, Ollama (free/local), Groq, xAI, Kimi, Mistral, Cerebras, MiniMax, Qwen, Copilot, and more |
| 14 Messaging Channels | WhatsApp, Telegram, Discord, Slack, Teams, Google Chat, iMessage, Signal, Mattermost, Matrix, Twitch, LINE, BlueBubbles, Email |
| 8 Enterprise Connectors | Salesforce, Jira, HubSpot, Zendesk, ServiceNow, Linear, Asana, Okta |
| 6 Cloud Storage | Notion, Box, OneDrive, Google Workspace (Drive/Gmail/Calendar), Dropbox, SharePoint |
| Voice Calls | Outbound phone calls via ElevenLabs Agents |
| Agentic Tribe | Agent collaboration through shared checklists, coordinated runs, and agentic tool-calling |
| Workspace Kit | Workspace .cowork/ kit (projects, access rules, context injection, per-workspace settings) |
| Security-First | 2800+ unit tests, configurable guardrails, approval workflows, gateway hardening |
| Local-First | Your data stays on your machine. BYOK (Bring Your Own Key) |
- Agent execution reliability: task execution now emits long-running tool heartbeats, improves recovery behavior, and adds shell-permission preflight prompts when command execution is required.
-
Safer shell automation:
run_commandnow supports single-approval bundles for safe command sequences and redacts sensitive output patterns (seed phrases/private keys). - Canvas + Control Plane expansion: added ACP delegation endpoints plus new canvas checkpoint/list/restore APIs across control-plane, IPC, and tool surfaces.
-
Gateway + UX upgrades: channel defaults now support default/allowed agent-role routing, plus renderer improvements for Talk Mode, task activity signaling, and language preferences (
en,ja,zh). - SkillHub registry + docs/mobile additions: static GitHub-backed skill catalog support, bundled registry snapshots, VitePress docs scaffolding, and mobile companion app scaffolds.
-
Install simulation safety: you can now disable OS keychain usage in isolated test environments with
COWORK_DISABLE_OS_KEYCHAIN=1to avoid macOS keychain reset prompts.
Status: macOS desktop app + headless/server mode (Linux/VPS). Cross-platform desktop support planned.
- Download the latest build from GitHub Releases
- In Assets, download the newest Apple Silicon DMG (
CoWork-OS-<version>-arm64.dmg) - Open the
.dmgand drag CoWork OS into Applications - Eject the mounted DMG after copying, then launch only /Applications/CoWork OS.app (prevents duplicate app instances/icons)
- This app is currently distributed as an unsigned build. On first launch, use System Settings > Privacy & Security > Open Anyway once.
- Terminal fallback:
xattr -dr com.apple.quarantine "/Applications/CoWork OS.app" - If the app closes immediately with a
dyldsignature error, run:codesign --force --deep --sign - "/Applications/CoWork OS.app" -
spctl --add/spctl --enableare deprecated on newer macOS and may show "This operation is no longer supported"
Use this flow to test like a first-time user in a clean folder:
# Install into a local folder
mkdir -p /tmp/cowork-run
cd /tmp/cowork-run
npm install --ignore-scripts --omit=optional cowork-os@latest --no-audit --no-fund
# Prepare native runtime (Electron binary + native module cache)
npm run --prefix node_modules/cowork-os setup
# Ensure no previously running CoWork instance is active
pkill -f '/cowork-os' || true
# Start app
./node_modules/.bin/cowork-osThis is the first install path users should try on macOS:
If you run plain
npm install cowork-os@latest, macOS can still intermittently kill lifecycle scripts during dependency extraction. Use the flow above with--ignore-scripts --omit=optionalandnpm run --prefix node_modules/cowork-os setupbefore first launch.
For strict reproducibility on low-memory machines:
export COWORK_SETUP_JOBS=1
export COWORK_SETUP_NATIVE_OUTER_ATTEMPTS=10
export COWORK_SETUP_NATIVE_SHELL_ATTEMPTS=10
# Optional for fully isolated HOME tests: bypass OS keychain integration
export COWORK_DISABLE_OS_KEYCHAIN=1
npm run --prefix node_modules/cowork-os setup- If setup is interrupted by
SIGKILL, close other memory-heavy apps and rerun:npm run --prefix node_modules/cowork-os setup
- For local package testing, use the same
--ignore-scriptsflow with the tarball:npm init -ynpm install --ignore-scripts /path/to/cowork-os-<version>.tgznpm run --prefix node_modules/cowork-os setup
- If you run with an isolated
HOMEand see a macOS Keychain Not Found dialog, choose Cancel.- Do not use Reset To Defaults in this flow.
- Prefer setting
COWORK_DISABLE_OS_KEYCHAIN=1for disposable install simulations.
- If you already have a global install, verify with
coworkd-node --versionand avoid launching without dependency setup on first run.
You can also install globally and launch directly:
npm install -g --ignore-scripts --omit=optional --no-audit --no-fund cowork-os
# Optional: verify installed version
npm list -g cowork-os --depth=0
# Ensure no previously running CoWork instance is active
pkill -f '/cowork-os' || true
cowork-osIf the app opens but shows vUnknown or Error invoking remote method 'app:getVersion', you likely connected to an older already-running instance.
Run:
pkill -f '/cowork-os' || true
cowork-os- Node.js 22+ and npm
- macOS 12 (Monterey) or later
- One of: any supported LLM provider credentials (API key/token or AWS credentials) or Ollama installed locally
- Xcode Command Line Tools (needed to build
better-sqlite3for Electron):xcode-select --install
# Clone the repository
git clone https://github.com/CoWork-OS/CoWork-OS.git
cd CoWork-OS
# Install dependencies and set up native modules (includes automatic macOS retry handling)
npm run setup
# Run in development mode
npm run dev
# Configure your API credentials in Settings (gear icon)If you see Killed: 9 during npm run setup, macOS terminated a native build due to memory pressure.
npm run setup already retries native setup automatically with backoff. Let it continue until it exits. If it still exits non-zero:
pkill -f '/cowork-os' || true
npm run --prefix node_modules/cowork-os setupIf the shell shows zsh: killed again, this usually means your system killed a child process. Repeat with lower-memory settings:
COWORK_SETUP_JOBS=1 \
COWORK_SETUP_NATIVE_OUTER_ATTEMPTS=12 \
COWORK_SETUP_NATIVE_SHELL_ATTEMPTS=12 \
npm run --prefix node_modules/cowork-os setupIf npm run --prefix node_modules/cowork-os setup is itself killed immediately (before setup logs appear), run the native retry wrapper directly:
(cd node_modules/cowork-os && sh scripts/setup_native_retry.sh)npm run setup # if not already done
npm run build
npm run packageThe packaged app will be in the release/ directory.
If this is your first VPS install, start here (Node-only, no Docker):
- On your VPS (SSH terminal), connect and verify Node version:
ssh user@your-vps
node -v
npm -vcowork-os requires Node >=22.12.0. If you see v20/v21, upgrade first:
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt-get install -y nodejs
node -v- Install and start CoWork OS (local install, no sudo needed):
mkdir -p ~/cowork-run
cd ~/cowork-run
npm init -y >/dev/null
npm install cowork-os@latest --no-audit --no-fund
export COWORK_IMPORT_ENV_SETTINGS=1
export OPENAI_API_KEY=your_key_here # or ANTHROPIC_API_KEY=your_key_here
npx coworkd-node --print-control-plane-tokenKeep this terminal open. It runs the server and prints your Control Plane token.
If you see sh: 1: tsc: not found right after npx coworkd-node, you are on an older broken npm publish. Upgrade and retry:
npm install cowork-os@latest --no-audit --no-fund- On your local machine (second terminal), create the SSH tunnel:
ssh -N -L 18789:127.0.0.1:18789 user@your-vpsIf local port 18789 is busy:
ssh -N -L 28789:127.0.0.1:18789 user@your-vps- Open the web UI in your browser:
-
http://127.0.0.1:18789/(orhttp://127.0.0.1:28789/if you used 28789) - Paste the token from step 1
- If you skipped
OPENAI_API_KEY/ANTHROPIC_API_KEY, use the LLM Setup panel in this UI to configure provider credentials.
For production/persistent setup and Docker/systemd options, use:
- Guide:
docs/vps-linux.md - Overview:
docs/self-hosting.md
CoWork OS achieves one of the highest security scores on ZeroLeaks — outperforming many commercial solutions in prompt injection resistance
View Full Security Assessment Report
Switch between Modern (default) and Terminal visual themes with a real-time task timeline
- Configurable guardrails: Token budgets, cost limits, iteration caps
- Dangerous command blocking: Built-in patterns + custom regex rules
- Approval workflows: User consent required for destructive operations
- Pairing & allowlists: Control who can access your AI via messaging channels
- 2800+ tests: Comprehensive test coverage for access control and policies
- 100% local-first: Database, credentials, and artifacts stay on your machine
- No telemetry: We don't track you
- BYOK: Bring your own API keys — no middleman, no proxy
- Open source: Audit the code yourself
- Message your AI from WhatsApp, Telegram, Discord, Slack, Microsoft Teams, Google Chat, iMessage, Signal, Mattermost, Matrix, Twitch, LINE, BlueBubbles, or Email
- Mobile Companions: iOS and Android apps for on-the-go access via local network
- Schedule recurring tasks with cron expressions
- Secure remote access via Tailscale or SSH tunnels
- WebSocket API for custom integrations
- Claude Code-style tools:
glob,grep,edit_file - Browser automation with Playwright
- 85+ bundled skills for popular services
- MCP (Model Context Protocol) support for extensibility
CoWork OS is designed with security as a core principle, not an afterthought.
| Layer | Protection |
|---|---|
| Channel Access | Pairing codes, allowlists, brute-force lockout (5 attempts, 15 min cooldown) |
| Context Policies | Per-context security modes (DM vs group), tool restrictions per context |
| Encrypted Storage | OS keychain (macOS/Windows/Linux) + AES-256 fallback, SHA-256 integrity checks |
| Gateway Hardening | Requester-only approval in group chats, tool restrictions, streaming coalescing |
| Tool Execution | Risk-level categorization, context-aware isolation, denied tools/groups enforcement |
| Sandbox Isolation | Docker containers (cross-platform) or macOS sandbox-exec |
| File Operations | Workspace boundaries, path traversal protection |
| Shell Commands | Dangerous command blocking, explicit approval required |
| Browser Automation | Domain allowlist, configurable restrictions |
| Resource Limits | Token budgets, cost caps, iteration limits, file size limits |
- 132+ security unit tests for access control and policy enforcement
- 259+ WebSocket protocol tests for API security
- Monotonic policy precedence (deny-wins across security layers)
- Context-aware tool isolation for shared gateway environments
Shell commands run in isolated sandboxes:
| Platform | Sandbox Type | Features |
|---|---|---|
| macOS | sandbox-exec |
Native Apple sandbox profiles, no setup required |
| Linux/Windows | Docker | Container isolation, resource limits, network isolation |
| Fallback | Process isolation | Timeouts, resource limits (when Docker unavailable) |
Docker sandbox features:
- CPU and memory limits (
--cpus,--memory) - Network isolation (
--network noneby default) - Read-only workspace mounting option
- Automatic cleanup of containers
Different security settings for direct messages vs group chats:
| Context | Default Mode | Default Restrictions |
|---|---|---|
| DM | Pairing | No restrictions |
| Group | Pairing | Memory tools blocked (clipboard) |
Configure per-context policies in Settings > Channels > [Channel] > Context Policies.
See also: docs/security/ for comprehensive security documentation.
CoWork OS is free and open source. To run tasks, configure your own model credentials or use local models.
| Provider | Configuration | Billing |
|---|---|---|
| Anthropic API | API key in Settings | Pay-per-token |
| Google Gemini | API key in Settings | Pay-per-token (free tier available) |
| OpenRouter | API key in Settings | Pay-per-token (multi-model access) |
| OpenAI (API Key) | API key in Settings | Pay-per-token |
| OpenAI (ChatGPT OAuth) | Sign in with ChatGPT account | Uses your ChatGPT subscription |
| AWS Bedrock | AWS credentials in Settings (auto-resolves inference profiles) | Pay-per-token via AWS |
| Ollama (Local) | Install Ollama and pull models | Free (runs locally) |
| Groq | API key in Settings | Pay-per-token |
| xAI (Grok) | API key in Settings | Pay-per-token |
| Kimi (Moonshot) | API key in Settings | Pay-per-token |
| Provider | Configuration | Billing |
|---|---|---|
| OpenCode Zen | API key + base URL in Settings | Provider billing |
| Google Vertex | Access token + base URL in Settings | Provider billing |
| Google Antigravity | Access token + base URL in Settings | Provider billing |
| Google Gemini CLI | Access token + base URL in Settings | Provider billing |
| Z.AI | API key + base URL in Settings | Provider billing |
| GLM | API key + base URL in Settings | Provider billing |
| Vercel AI Gateway | API key in Settings | Provider billing |
| Cerebras | API key in Settings | Provider billing |
| Mistral | API key in Settings | Provider billing |
| GitHub Copilot | GitHub token in Settings | Subscription-based |
| Moonshot (Kimi) | API key in Settings | Provider billing |
| Qwen Portal | API key in Settings | Provider billing |
| MiniMax | API key in Settings | Provider billing |
| MiniMax Portal | API key in Settings | Provider billing |
| Xiaomi MiMo | API key in Settings | Provider billing |
| Venice AI | API key in Settings | Provider billing |
| Synthetic | API key in Settings | Provider billing |
| Kimi Code | API key in Settings | Provider billing |
| OpenAI-Compatible (Custom) | API key + base URL in Settings | Provider billing |
| Anthropic-Compatible (Custom) | API key + base URL in Settings | Provider billing |
Your usage is billed directly by your provider. CoWork OS does not proxy or resell model access.
- WhatsApp: QR code pairing, self-chat mode, markdown support
- Telegram: Bot commands, streaming responses, workspace selection
- Discord: Slash commands, DM support, guild integration
- Slack: Socket Mode, channel mentions, file uploads
- Microsoft Teams: Bot Framework SDK, DM/channel mentions, adaptive cards
- Google Chat: Service account auth, spaces/DMs, threaded conversations, cards
- iMessage: macOS native integration, pairing codes
- Signal: End-to-end encrypted messaging via signal-cli
- Mattermost: WebSocket real-time, REST API, team/channel support
- Matrix: Federated messaging, room-based, end-to-end encryption ready
- Twitch: IRC chat integration, multi-channel, whisper support
- LINE: Messaging API webhooks, reply tokens, 200M+ users in Asia
- BlueBubbles: iMessage via Mac server, SMS support, attachments
- Email: IMAP/SMTP, any email provider, subject filtering, threading
All channels support:
- Security modes (pairing, allowlist, open)
- Brute-force protection
- Session management
- Rate limiting
- Inbound attachment persistence (files saved to
.cowork/inbox/attachments/) - Chat commands:
/schedule,/digest,/followups,/brief(see channel docs below) - Ambient mode: Passively ingest all messages without responding (slash commands still routed); enable per-channel in settings
-
Self-message capture: Capture your own outgoing messages as context (
captureSelfMessageson WhatsApp, iMessage, BlueBubbles)
Customize the app appearance with visual style and color mode options.
| Visual Style | Description |
|---|---|
| Modern | Refined non-terminal UI style with rounded components (default) |
| Terminal | CLI-inspired interface with prompt-style visuals |
| Color Mode | Description |
|---|---|
| System | Follows your macOS light/dark mode preference |
| Light | Clean light interface |
| Dark | Dark mode for reduced eye strain |
Configure in Settings > Appearance.
- Task-Based Workflow: Multi-step execution with plan-execute-observe loops
- Dynamic Re-Planning: Agent can revise its plan mid-execution
- 85+ Built-in Skills: GitHub, Slack, Notion, Spotify, Apple Notes, and more
- Document Creation: Excel, Word, PDF, PowerPoint with professional formatting
- Persistent Memory: Cross-session context with privacy-aware observation capture
-
Workspace Kit:
.cowork/project kit + markdown indexing with context injection - Agentic Tribe: Coordinated multi-agent execution with shared checklists, synchronized runs, and team management UI
- Performance Reviews: Score and review agent-role outcomes, with autonomy-level recommendations
- Voice Calls: Outbound phone calls via ElevenLabs Agents (list agents, list numbers, initiate calls)
-
Vision: Analyze workspace images (screenshots, photos, diagrams) via
analyze_imagetool (OpenAI, Anthropic, or Gemini) -
X Browser Fallback:
x_actionautomatically falls back to browser-mode read/write flows when Bird CLI is blocked (rate limits, auth challenges, access issues) -
Attachment OCR (Optional): Extract image text in local file previews with Tesseract (
tesseractbinary must be installed and onPATH) -
Image Generation: Create images via
generate_imagewith multi-provider support (Gemini, OpenAI gpt-image-1/1.5/DALL-E, Azure OpenAI) and automatic provider selection - Visual Annotation: Iterative image refinement with the Visual Annotator — generate, annotate, refine, repeat until approved
-
Email IMAP Access: Direct IMAP mailbox access via
email_imap_unread— check unread emails without needing Google Workspace - Workspace Recency: Workspaces ordered by last used time for quick access
- Hook-Triggered Heartbeat Wakeups: Agents can act on hook-based wake events as explicit check-in prompts
Talk to your AI assistant with voice input and audio responses, plus make outbound phone calls.
| Feature | Description |
|---|---|
| Text-to-Speech | ElevenLabs (premium), OpenAI TTS, or local Web Speech API |
| Speech-to-Text | OpenAI Whisper for accurate transcription |
| Multiple Voices | Choose from ElevenLabs voices or OpenAI voices (alloy, echo, fable, onyx, nova, shimmer) |
| Outbound Phone Calls | Initiate phone calls via ElevenLabs Agents (list agents, list numbers, make calls) |
| Customizable | Volume, speech rate, language settings |
| Secure Storage | All settings encrypted via OS keychain (macOS/Windows/Linux) with AES-256 fallback |
Supported Providers:
| Provider | TTS | STT | Cost |
|---|---|---|---|
| ElevenLabs | ✓ (Premium quality) | — | Pay-per-character |
| OpenAI | ✓ | ✓ (Whisper) | Pay-per-token |
| Local | ✓ (Web Speech API) | Coming soon | Free |
Configure in Settings > Voice.
Capture and recall observations across sessions for improved context continuity.
| Feature | Description |
|---|---|
| Auto-Capture | Observations, decisions, and errors captured during task execution |
| Privacy Protection | Auto-detects sensitive patterns (API keys, passwords, tokens) |
| FTS5 Search | Full-text search with relevance ranking |
| LLM Compression | Summarizes observations for ~10x token efficiency |
| Progressive Retrieval | 3-layer approach: snippets → timeline → full details |
| Per-Workspace Settings | Enable/disable, privacy modes, retention policies |
Privacy Modes:
| Mode | Description |
|---|---|
| Normal | Auto-detect and mark sensitive data as private |
| Strict | Mark all memories as private (local only) |
| Disabled | No memory capture |
Configure in Settings > Memory for each workspace.
Initialize and maintain a .cowork/ directory inside each workspace for durable context, project scaffolding, and prompt injection.
| Feature | Description |
|---|---|
| Kit Initialization | Creates a standard .cowork/ structure + templates (agents, identity, memory, etc.) |
| Project Contexts | Create .cowork/projects/<projectId>/ with ACCESS.md, CONTEXT.md, and research/
|
| Markdown Indexing | Indexes .cowork/ markdown files for durable human-edited context |
| Keyword Search | Search by keyword matching against indexed sections |
| Context Injection | Aggregates workspace kit files (and relevant project contexts) into agent prompts automatically |
| Global Toggles | Enable/disable memory features globally via Memory Hub settings |
| Per-Workspace Settings | Configure memory behavior per workspace |
| Mixed Search Results | Supports both database and markdown-backed search results |
Notes:
- Context injection is only enabled for private tasks and can be toggled in Settings > Memory Hub.
- Project access rules are enforced for file/edit/grep tools and for project context injection.
Configure in Settings > Memory Hub.
You can define per-role personality and operating guidelines directly in workspace files.
When a role runs, CoWork loads these first; if missing, it falls back to legacy role metadata.
Expected structure:
| File | Purpose |
|---|---|
.cowork/agents/<role-id>/SOUL.md |
Role personality, behavior style, and execution philosophy |
.cowork/agents/<role-id>/IDENTITY.md |
Role-specific identity and constraints |
.cowork/agents/<role-id>/RULES.md |
Operational rules, safety boundaries, communication defaults |
Role resolution checks these folder candidates in order:
-
<normalized role.name>(keeps folder-safe letters, numbers,_,-,.) - slugified variant of role name (ASCII-safe fallback)
-
<normalized role.displayName>(same normalization) - slugified variant of displayName
<normalized role.id>- slugified variant of id
default
Only non-empty .cowork/agents/... files are used. If no files are found, CoWork uses existing DB role soul notes.
Tips:
- Start by cloning a profile from an existing role: copy one
*.mdfile to a new role folder. - Keep templates simple; the first 4k chars per file are injected into prompts.
- Keep sensitive values out of these files;
.coworkcontent is sanitized before use. - Quick scaffold:
mkdir -p .cowork/agents/<role-id> && printf '%s\n' "# SOUL.md" "..." > .cowork/agents/<role-id>/SOUL.md- If you are unsure about the folder name, place a
defaultprofile at.cowork/agents/default/and copy it to.../<role-id>/.
Coordinate multiple agents as an Agentic Tribe to solve complex tasks together through shared state, context, and tool-calling loops.
| Feature | Description |
|---|---|
| Team Management | Create and manage teams with multiple agent members |
| Shared Checklists | Tribe members share checklist items for coordinated task execution |
| Run Tracking | Track team runs with status, progress, and history |
| Member Roles | Assign different agents to team members |
| Defaults | Set default model + personality preferences for spawned work |
| Queue-Friendly | Team runs respect global concurrency limits by default |
| UI Panel | Full React UI for creating, managing, and monitoring agentic tribes |
| Data Persistence | SQLite-backed repositories for teams, members, items, and runs |
Configure in Mission Control > Teams.
Generate performance reviews for agent roles based on recent task outcomes and apply recommended autonomy levels.
| Feature | Description |
|---|---|
| Ratings + Metrics | Deterministic scoring based on completion/failure and throughput |
| Autonomy Recommendations | Suggests intern / specialist / lead based on recent performance |
| History | Stored locally for audit and comparison |
Configure in Mission Control > Reviews.
| Guardrail | Description | Default | Range |
|---|---|---|---|
| Token Budget | Total tokens (input + output) per task | 100,000 | 1K - 10M |
| Cost Budget | Estimated cost (USD) per task | $1.00 (disabled) | $0.01 - $100 |
| Iteration Limit | LLM calls per task | 50 | 5 - 500 |
| Dangerous Command Blocking | Block shell commands matching patterns | Enabled | On/Off + custom |
| Auto-Approve Trusted Commands | Skip approval for safe commands | Disabled | On/Off + patterns |
| File Size Limit | Max file size agent can write | 50 MB | 1 - 500 MB |
| Domain Allowlist | Restrict browser to approved domains | Disabled | On/Off + domains |
Claude Code-style tools for efficient code navigation and editing:
| Tool | Description |
|---|---|
| glob | Fast pattern-based file search (e.g., **/*.ts, src/**/*.tsx) |
| grep | Regex content search across files with context lines |
| edit_file | Surgical file editing with find-and-replace |
Full Playwright integration:
- Navigate to URLs, take screenshots, save as PDF
- Click, fill forms, type text, press keys
- Extract page content, links, and form data
- Scroll pages, wait for elements, execute JavaScript
- Browser automation supports
browser_channel:-
chromium(default bundled Chromium) -
chrome(system Google Chrome) -
brave(system Brave or a path set inBRAVE_PATH)
-
- Take screenshots (full screen or specific windows)
- Read/write clipboard content
- Open applications, URLs, and file paths
- Run AppleScript to automate macOS apps
- Get system information and environment variables
-
Apple Calendar: Create, update, delete calendar events via
apple_calendar_action -
Apple Reminders: Create, complete, update, list reminders via
apple_reminders_action
- Tailscale Serve: Expose to your private tailnet
- Tailscale Funnel: Public HTTPS endpoint via Tailscale edge
- SSH Tunnels: Standard SSH port forwarding
- WebSocket API: Programmatic task management
- MCP Client: Connect to external MCP servers
- MCP Host: Expose CoWork's tools as an MCP server
- MCP Registry: Browse and install servers from a catalog
Customize agent behavior via Settings or conversation:
- Personalities: Professional, Friendly, Concise, Creative, Technical, Casual
- Personas: Jarvis, Friday, HAL, Computer, Alfred, Intern, Sensei, Pirate, Noir
- Response Style: Emoji usage, response length, code comments, explanation depth
- Quirks: Catchphrases, sign-offs, analogy domains
- Relationship: Agent remembers your name and tracks interactions
- Stored locally: Task metadata, timeline events, artifact index, workspace config, memories (SQLite)
- Sent to provider: Task prompt and context you choose to include
- Not sent: Your API keys (stored locally via OS keychain), private memories (marked sensitive)
┌─────────────────────────────────────────────────────────────────┐
│ Security Layers │
├─────────────────────────────────────────────────────────────────┤
│ Channel Access Control: Pairing | Allowlist | Rate Limiting │
│ Guardrails & Limits: Token Budget | Cost Cap | Iterations │
│ Approval Workflows: Shell | Delete | Bulk Operations │
│ Workspace Isolation: Path Traversal | File Boundaries │
└─────────────────────────────────────────────────────────────────┘
↕
┌─────────────────────────────────────────────────────────────────┐
│ React UI (Renderer) │
│ Task List | Timeline | Approval Dialogs | Live Canvas │
│ Settings | Notification Panel | MCP Registry │
└─────────────────────────────────────────────────────────────────┘
↕ IPC
┌─────────────────────────────────────────────────────────────────┐
│ Agent Daemon (Main Process) │
│ Task Queue Manager | Agent Executor | Tool Registry │
│ Permission Manager | Cron Service | Memory Service │
└─────────────────────────────────────────────────────────────────┘
↕
┌─────────────────────────────────────────────────────────────────┐
│ Execution Layer │
│ File Operations | Document Skills | Browser Automation │
│ LLM Providers (20+) | Search Providers (4) | MCP Client │
└─────────────────────────────────────────────────────────────────┘
↕
┌─────────────────────────────────────────────────────────────────┐
│ SQLite Database | MCP Host Server | WebSocket Control Plane │
│ Tailscale / SSH Tunnel Remote Access │
└─────────────────────────────────────────────────────────────────┘
| Requirement | Minimum | Recommended |
|---|---|---|
| macOS | 12 (Monterey) | 13+ (Ventura or later) |
| RAM | 4 GB | 8 GB+ |
| CPU | 2 cores | 4+ cores |
| Architecture | Intel (x64) or Apple Silicon (arm64) | Apple Silicon |
- macOS 12 Monterey
- macOS 13 Ventura
- macOS 14 Sonoma
- macOS 15 Sequoia
- Base memory: ~300-500 MB (Electron + React UI)
- Per bot integration: ~50-100 MB additional (WhatsApp, Telegram, etc.)
- Playwright automation: ~200-500 MB when active
- CPU: Mostly idle; spikes during AI API calls (network I/O bound)
If you prefer not to run CoWork OS on your main Mac, you can install it on a macOS virtual machine:
| Platform | VM Options |
|---|---|
| Apple Silicon Mac | UTM, Parallels Desktop, VMware Fusion |
| Intel Mac | Parallels Desktop, VMware Fusion, VirtualBox |
Recommended VM specs:
- 4+ GB RAM allocated to VM
- 2+ CPU cores
- 40+ GB disk space
This is a good option for:
- Testing before installing on your main machine
- Isolating AI agent file operations from your primary system
- Running experimental tasks in a sandboxed environment
Main interface with task timeline and execution view
Settings panel for AI providers and channel configuration
Messaging channel integrations and security modes
On first launch, select a folder where CoWork OS can work. This folder will be:
- Mounted for read/write access
- Protected by permission boundaries
- Used as the working directory for all tasks
Click "New Task" and describe what you want to accomplish:
Example Tasks:
- "Organize my Downloads folder by file type"
- "Create a quarterly report spreadsheet with Q1-Q4 data"
- "Generate a presentation about our product roadmap"
- "Analyze these CSV files and create a summary document"
Watch the task timeline as the agent:
- Creates an execution plan
- Executes steps using available tools
- Requests approvals for destructive operations
- Produces artifacts (files)
Security and workspace configuration options
When the agent needs to perform destructive actions, you'll see an approval dialog. Review the details and approve or deny.
See also: SECURITY_GUIDE.md for a comprehensive guide on the app's security model, permissions, and best practices.
- Don't point this at sensitive folders — select only folders you're comfortable giving the agent access to
- Use version control / backups — always have backups of important files before running tasks
- Review approvals carefully — read what the agent wants to do before approving
- Treat web content as untrusted input — be cautious with tasks involving external data
All file operations are constrained to the selected workspace folder. Path traversal attempts are rejected.
interface WorkspacePermissions {
read: boolean; // Read files
write: boolean; // Create/modify files
delete: boolean; // Delete files (requires approval)
network: boolean; // Network access
shell: boolean; // Execute shell commands (requires approval)
}The following operations always require user approval:
- File deletion
- Shell command execution (when enabled)
- Bulk rename (>10 files)
- Network access beyond allowlist
- External service calls
Run multiple tasks concurrently with configurable limits.
- Concurrency Limit: Set maximum simultaneous tasks (1-10, default: 3)
- FIFO Queue: Tasks beyond the limit are queued in order
- Auto-Start: Completed tasks trigger the next in queue
- Persistence: Queued tasks survive app restarts
When tasks are running or queued, a panel shows:
- Running tasks with spinner indicator
- Queued tasks with position (#1, #2, etc.)
- View and Cancel buttons for each task
Floating action button for rapid task creation:
- Click the + button
- Type your task prompt
- Press Enter to queue
Schedule recurring tasks with cron expressions and optional channel delivery.
- Cron Expressions: Standard cron syntax (minute, hour, day, month, weekday)
- Workspace Binding: Each job runs in a specific workspace
- Channel Delivery: Send results to Telegram, Discord, Slack, Teams, Google Chat, WhatsApp, iMessage, Signal, Mattermost, Matrix, Twitch, LINE, BlueBubbles, or Email
-
Conditional Delivery: Only post results when non-empty (
deliverOnlyIfResult) — useful for monitors that should stay silent on no-ops -
Template Variables: Use
{{today}},{{tomorrow}},{{week_end}},{{now}}in job prompts for dynamic date context -
Chat Context Variables: Jobs with channel delivery can use
{{chat_messages}},{{chat_since}},{{chat_until}},{{chat_message_count}},{{chat_truncated}}to inject recent chat history into prompts - Run History: View execution history with status and duration
- Enable/Disable: Toggle jobs without deleting them
| Schedule | Expression | Description |
|---|---|---|
| Every hour | 0 * * * * |
Start of every hour |
| Daily at 9am | 0 9 * * * |
Every day at 9:00 AM |
| Weekdays at 6pm | 0 18 * * 1-5 |
Monday-Friday at 6:00 PM |
| Weekly on Sunday | 0 0 * * 0 |
Every Sunday at midnight |
Run tasks via WhatsApp using the Baileys library for Web WhatsApp connections.
- Open Settings > WhatsApp tab
- Click Add WhatsApp Channel
- Scan the QR code with your phone (WhatsApp > Settings > Linked Devices)
- Once connected, the channel status shows "Connected"
| Mode | Description | Best For |
|---|---|---|
| Self-Chat Mode ON (default) | Bot only responds in "Message Yourself" chat | Using your personal WhatsApp |
| Self-Chat Mode OFF | Bot responds to all incoming messages | Dedicated bot phone number |
| Mode | Description |
|---|---|
| Pairing (default) | Users must enter a pairing code |
| Allowlist | Only pre-approved phone numbers |
| Open | Anyone can message (not recommended) |
| Command | Description |
|---|---|
/workspaces |
List available workspaces |
/workspace <n> |
Select workspace by number |
/newtask |
Start fresh conversation |
/status |
Check bot status |
/cancel |
Cancel running task |
/pair <code> |
Pair with code |
/schedule <prompt> |
Schedule a recurring task |
/digest [lookback] |
Digest of recent chat messages |
/followups [lookback] |
Extract follow-ups/commitments |
/brief [today|week] |
Generate a brief summary (DM only) |
Run tasks remotely via Telegram bot.
- Create a bot with @BotFather and copy the token
- Open Settings > Channels tab
- Enter your bot token and click Add Telegram Channel
- Test and enable the channel
| Command | Description |
|---|---|
/workspaces |
List workspaces |
/workspace <n> |
Select workspace |
/addworkspace <path> |
Add new workspace |
/status |
Show session status |
/cancel |
Cancel running task |
/schedule <prompt> |
Schedule a recurring task |
/digest [lookback] |
Digest of recent chat messages |
/followups [lookback] |
Extract follow-ups/commitments |
/brief [today|week] |
Generate a brief summary (DM only) |
Run tasks via Discord slash commands or direct messages.
- Create application at Discord Developer Portal
- Add bot and copy token
- Enable Message Content Intent in Privileged Gateway Intents
- Invite bot with
botandapplications.commandsscopes - Configure in Settings > Channels
| Command | Description |
|---|---|
/workspaces |
List workspaces |
/workspace [path] |
Select workspace |
/task <prompt> |
Run task directly |
/status |
Show session status |
/cancel |
Cancel running task |
/schedule <prompt> |
Schedule a recurring task |
/digest [lookback] |
Digest of recent chat messages |
/followups [lookback] |
Extract follow-ups/commitments |
/brief [today|week] |
Generate a brief summary (DM only) |
Run tasks via Slack using Socket Mode.
- Create app at Slack API Apps
- Enable Socket Mode and create App-Level Token (
xapp-...) - Add bot scopes:
app_mentions:read,chat:write,im:history,im:read,im:write,users:read,files:write - Subscribe to events:
app_mention,message.im - Install to workspace and copy Bot Token (
xoxb-...) - Configure in Settings > Channels > Slack
Run tasks via Microsoft Teams using the Bot Framework SDK for full bi-directional messaging.
- Azure account with Bot Services access
- Microsoft Teams workspace where you can add apps
- Public webhook URL (use ngrok for local development)
-
Create an Azure Bot:
- Go to Azure Portal - Create Bot
- Choose Multi-tenant or Single-tenant type
- Create or select a resource group
- Click Create
-
Get Bot Credentials:
- In the Bot resource, go to Configuration
- Copy the Microsoft App ID
- Click Manage Password to go to App Registration
- Under Certificates & secrets, create a new client secret
- Copy the secret value (shown only once)
-
Add Teams Channel:
- In the Bot resource, go to Channels
- Click Microsoft Teams and enable the channel
-
Set Up Webhook (for local development):
ngrok http 3978
- Copy the HTTPS URL from ngrok
- In Azure Bot Configuration, set Messaging endpoint to:
https://your-ngrok-url/api/messages
-
Configure in CoWork OS:
- Open Settings > Teams tab
- Enter your Microsoft App ID
- Enter your App Password (client secret)
- Optionally enter Tenant ID (for single-tenant apps)
- Set webhook port (default: 3978)
- Click Add Teams Bot
| Mode | Description |
|---|---|
| Pairing (default) | Users must enter a pairing code to interact |
| Allowlist | Only pre-approved Teams users can message |
| Open | Anyone can message (not recommended) |
| Command | Description |
|---|---|
/workspaces |
List available workspaces |
/workspace <n> |
Select workspace by number |
/newtask |
Start fresh conversation |
/status |
Check bot status |
/cancel |
Cancel running task |
/pair <code> |
Pair with code |
/schedule <prompt> |
Schedule a recurring task |
/digest [lookback] |
Digest of recent chat messages |
/followups [lookback] |
Extract follow-ups/commitments |
/brief [today|week] |
Generate a brief summary (DM only) |
- Direct Messages: Chat directly with the bot
- Channel Mentions: @mention the bot in any channel it's added to
- Adaptive Cards: Rich card formatting for responses
- Markdown Support: Basic markdown in messages
- File Attachments: Send documents and images
- Message Editing: Edit and delete messages
- Webhook Required: A public endpoint is needed to receive messages from Teams
- ngrok for Development: Use ngrok or similar to expose local port 3978
- Rate Limits: Teams has rate limits (50 requests/second per bot)
- Auto-Reconnect: Built-in reconnection with exponential backoff
Run tasks via Google Chat using the Google Chat API with service account authentication.
- Google Cloud project with Chat API enabled
- Service account with appropriate permissions
- Public webhook URL (use ngrok for local development)
-
Enable Google Chat API:
- Go to Google Cloud Console
- Enable the Google Chat API for your project
-
Create a Service Account:
- Go to IAM & Admin > Service Accounts
- Click Create Service Account
- Give it a name and description
- Grant roles:
Chat Bots ViewerandChat Bots Admin - Create a JSON key and download it
-
Configure Chat App:
- Go to Chat API Configuration
- Set App Status to "Live"
- Under Connection settings, select "HTTP endpoint URL"
- Enter your public webhook URL (e.g.,
https://your-ngrok-url/googlechat/webhook)
-
Set Up Webhook (for local development):
ngrok http 3979
- Copy the HTTPS URL and use it in the Chat API configuration
-
Configure in CoWork OS:
- Open Settings > Google Chat tab
- Enter the path to your service account JSON key file
- Optionally enter Project ID
- Set webhook port (default: 3979)
- Click Add Google Chat Bot
| Mode | Description |
|---|---|
| Pairing (default) | Users must enter a pairing code to interact |
| Allowlist | Only pre-approved Google users can message |
| Open | Anyone can message (not recommended) |
| Command | Description |
|---|---|
/workspaces |
List available workspaces |
/workspace <n> |
Select workspace by number |
/newtask |
Start fresh conversation |
/status |
Check bot status |
/cancel |
Cancel running task |
/pair <code> |
Pair with code |
/schedule <prompt> |
Schedule a recurring task |
/digest [lookback] |
Digest of recent chat messages |
/followups [lookback] |
Extract follow-ups/commitments |
/brief [today|week] |
Generate a brief summary (DM only) |
- Direct Messages: Chat directly with the bot in 1:1 conversations
- Spaces: Add the bot to Google Chat spaces for team access
- Threaded Replies: Maintains conversation threads
- Cards: Rich card formatting for responses (coming soon)
- Message Editing: Edit and delete messages
- Webhook Required: A public endpoint is needed to receive messages from Google Chat
- ngrok for Development: Use ngrok or similar to expose local port 3979
- Service Account: Different from OAuth - uses JWT for server-to-server auth
- Workspace Users Only: Google Chat bots only work within Google Workspace organizations
Run tasks via iMessage using the imsg CLI tool.
- macOS with Messages app signed in
-
imsgCLI:brew install steipete/tap/imsg - Full Disk Access granted to Terminal
Messages from your own Apple ID are filtered. To use the bot:
- Use a dedicated Apple ID for the bot Mac
- Message the bot from your personal devices
Run tasks via Signal with end-to-end encryption using signal-cli.
-
signal-cli: Install via Homebrew or from GitHub
brew install signal-cli
- Dedicated phone number: Signal allows only one registration per phone number. Using the bot will deregister your existing Signal app on that number.
- Java Runtime: signal-cli requires Java 17+
| Option | Description | Best For |
|---|---|---|
| Dedicated Number | Register with a separate phone number | Production use |
| Link as Device | Link signal-cli as secondary device to existing account | Testing (limited functionality) |
-
Register your phone number (if using dedicated number):
signal-cli -a +1234567890 register # Enter verification code when received signal-cli -a +1234567890 verify CODE -
Configure in CoWork OS:
- Open Settings > Signal tab
- Enter your phone number
- Select data directory (default:
~/.local/share/signal-cli) - Click Add Signal Channel
-
Check registration status using the "Check Registration" button
| Mode | Description |
|---|---|
| Pairing (default) | Users must enter a pairing code to interact |
| Allowlist | Only pre-approved phone numbers can message |
| Open | Anyone can message (not recommended) |
| Mode | Description |
|---|---|
| TOFU (Trust On First Use) | Auto-trust new identity keys on first contact |
| Always | Always trust identity keys (less secure) |
| Manual | Require manual verification of identity keys |
| Mode | Description |
|---|---|
| Native | Direct signal-cli command execution |
| Daemon | Connect to signal-cli JSON-RPC daemon (advanced) |
| Command | Description |
|---|---|
/workspaces |
List available workspaces |
/workspace <n> |
Select workspace by number |
/newtask |
Start fresh conversation |
/status |
Check bot status |
/cancel |
Cancel running task |
/pair <code> |
Pair with code |
/schedule <prompt> |
Schedule a recurring task |
/digest [lookback] |
Digest of recent chat messages |
/followups [lookback] |
Extract follow-ups/commitments |
/brief [today|week] |
Generate a brief summary (DM only) |
- Single Registration Limitation: Signal only allows one active registration per phone number. Registering signal-cli will deregister any existing Signal app using that number.
- Verification Codes: You'll need access to receive SMS or voice calls on the phone number for verification.
- Identity Keys: Signal uses identity keys for end-to-end encryption. The trust mode determines how new keys are handled.
Run tasks via Mattermost using the REST API and WebSocket for real-time messaging.
- Mattermost server (self-hosted or cloud)
- Personal Access Token with appropriate permissions
-
Generate a Personal Access Token:
- Go to Account Settings > Security > Personal Access Tokens
- Click Create Token and copy the token
-
Configure in CoWork OS:
- Open Settings > Mattermost tab
- Enter your server URL (e.g.,
https://your-team.mattermost.com) - Enter your Personal Access Token
- Optionally specify a Team ID
- Click Connect Mattermost
| Mode | Description |
|---|---|
| Pairing (default) | Users must enter a pairing code to interact |
| Allowlist | Only pre-approved users can message |
| Open | Anyone can message (not recommended) |
| Command | Description |
|---|---|
/workspaces |
List available workspaces |
/workspace <n> |
Select workspace by number |
/newtask |
Start fresh conversation |
/status |
Check bot status |
/cancel |
Cancel running task |
/pair <code> |
Pair with code |
/schedule <prompt> |
Schedule a recurring task |
/digest [lookback] |
Digest of recent chat messages |
/followups [lookback] |
Extract follow-ups/commitments |
/brief [today|week] |
Generate a brief summary (DM only) |
Run tasks via Matrix protocol with support for federated messaging and rooms.
- Matrix homeserver (Matrix.org, Element, Synapse, or self-hosted)
- Access token for your Matrix account
-
Get your Access Token:
- Log into your Matrix client (Element, etc.)
- Go to Settings > Help & About > Advanced
- Copy your Access Token
- Or use the Matrix API to generate one
-
Configure in CoWork OS:
- Open Settings > Matrix tab
- Enter your homeserver URL (e.g.,
https://matrix.org) - Enter your User ID (e.g.,
@yourbot:matrix.org) - Enter your Access Token
- Optionally specify Room IDs to monitor
- Click Connect Matrix
| Mode | Description |
|---|---|
| Pairing (default) | Users must enter a pairing code to interact |
| Allowlist | Only pre-approved Matrix users can message |
| Open | Anyone can message (not recommended) |
| Command | Description |
|---|---|
/workspaces |
List available workspaces |
/workspace <n> |
Select workspace by number |
/newtask |
Start fresh conversation |
/status |
Check bot status |
/cancel |
Cancel running task |
/pair <code> |
Pair with code |
/schedule <prompt> |
Schedule a recurring task |
/digest [lookback] |
Digest of recent chat messages |
/followups [lookback] |
Extract follow-ups/commitments |
/brief [today|week] |
Generate a brief summary (DM only) |
- Room-Based: Matrix operates on rooms. Configure specific room IDs or let the bot respond in any room it's invited to.
- Federation: Matrix is federated, allowing communication across different homeservers.
- E2EE: End-to-end encryption support depends on room settings.
Run tasks via Twitch chat using IRC over WebSocket.
- Twitch account for the bot
- OAuth token with chat permissions
- Visit twitchtokengenerator.com
- Select Chat Bot token type
- Authorize with your Twitch account
- Copy the OAuth token (starts with
oauth:)
-
Configure in CoWork OS:
- Open Settings > Twitch tab
- Enter your Twitch username
- Enter your OAuth token
- Enter channel names to join (comma-separated, without #)
- Optionally enable whispers (DMs)
- Click Connect Twitch
| Mode | Description |
|---|---|
| Pairing (default) | Users must enter a pairing code to interact |
| Allowlist | Only pre-approved Twitch users can message |
| Open | Anyone can message (not recommended) |
| Command | Description |
|---|---|
/workspaces |
List available workspaces |
/workspace <n> |
Select workspace by number |
/newtask |
Start fresh conversation |
/status |
Check bot status |
/cancel |
Cancel running task |
/pair <code> |
Pair with code |
/schedule <prompt> |
Schedule a recurring task |
/digest [lookback] |
Digest of recent chat messages |
/followups [lookback] |
Extract follow-ups/commitments |
/brief [today|week] |
Generate a brief summary (DM only) |
- No File Attachments: Twitch chat is text-only
- Rate Limited: 20 messages per 30 seconds
- Message Length: 500 characters max per message (auto-split for longer responses)
- Whispers: May require verified account status
Run tasks via LINE Messaging API with webhooks and push/reply messages.
- LINE Developers account (developers.line.biz)
- Messaging API channel with Channel Access Token and Channel Secret
- Public webhook URL (use ngrok or cloudflare tunnel for development)
-
Create a LINE Messaging API Channel:
- Go to LINE Developers Console
- Create a new provider or select existing
- Create a new Messaging API channel
- Copy the Channel Access Token (long-lived)
- Copy the Channel Secret
-
Configure in CoWork OS:
- Open Settings > LINE tab
- Enter your Channel Access Token
- Enter your Channel Secret
- Configure webhook port (default: 3100)
- Click Connect LINE
-
Configure Webhook in LINE Console:
- Set webhook URL to your public endpoint (e.g.,
https://your-domain.com/line/webhook) - Enable "Use webhook"
- Disable "Auto-reply messages" and "Greeting messages"
- Set webhook URL to your public endpoint (e.g.,
| Mode | Description |
|---|---|
| Pairing (default) | Users must enter a pairing code to interact |
| Allowlist | Only pre-approved LINE user IDs can message |
| Open | Anyone can message (not recommended) |
| Command | Description |
|---|---|
/workspaces |
List available workspaces |
/workspace <n> |
Select workspace by number |
/newtask |
Start fresh conversation |
/status |
Check bot status |
/cancel |
Cancel running task |
/pair <code> |
Pair with code |
/schedule <prompt> |
Schedule a recurring task |
/digest [lookback] |
Digest of recent chat messages |
/followups [lookback] |
Extract follow-ups/commitments |
/brief [today|week] |
Generate a brief summary (DM only) |
- Reply Messages: Free, use reply tokens (valid 1 minute)
- Push Messages: Uses monthly quota, for proactive messaging
- Reply tokens are ephemeral - valid only for ~1 minute after receiving a message
- Push messages count against quota - free plan has limited monthly messages
- Media messages require hosting URLs (image/video sending not fully implemented)
Run tasks via iMessage using BlueBubbles server running on a Mac.
- Mac computer running 24/7 with Messages app signed in
- BlueBubbles server installed (bluebubbles.app)
- Network access to the BlueBubbles server
-
Install BlueBubbles Server on Mac:
- Download from bluebubbles.app
- Follow setup wizard to configure
- Note the server URL and password
-
Configure in CoWork OS:
- Open Settings > BlueBubbles tab
- Enter your server URL (e.g.,
http://192.168.1.100:1234) - Enter your server password
- Optionally configure contact allowlist
- Click Connect BlueBubbles
| Mode | Description |
|---|---|
| Pairing (default) | Users must enter a pairing code to interact |
| Allowlist | Only pre-approved phone numbers/emails can message |
| Open | Anyone can message (not recommended) |
| Command | Description |
|---|---|
/workspaces |
List available workspaces |
/workspace <n> |
Select workspace by number |
/newtask |
Start fresh conversation |
/status |
Check bot status |
/cancel |
Cancel running task |
/pair <code> |
Pair with code |
/schedule <prompt> |
Schedule a recurring task |
/digest [lookback] |
Digest of recent chat messages |
/followups [lookback] |
Extract follow-ups/commitments |
/brief [today|week] |
Generate a brief summary (DM only) |
- iMessage and SMS: Send to both iMessage and SMS contacts
- Group Chats: Support for group conversations
- Webhooks or Polling: Real-time via webhooks or fallback polling
- Requires Mac running 24/7 - BlueBubbles server must stay online
- iMessage limitations - No message editing or deletion (iMessage doesn't support it)
- Network access - CoWork OS must be able to reach the BlueBubbles server
Run tasks via email using IMAP/SMTP. Universal channel that works with any email provider.
- Email account with IMAP and SMTP access
- App password (for Gmail, Outlook, Yahoo with 2FA enabled)
-
Configure in CoWork OS:
- Open Settings > Email tab
- Use quick setup for Gmail, Outlook, or Yahoo (fills server details)
- Enter your email address
- Enter your password or app password
- Configure IMAP and SMTP settings if using other provider
- Click Connect Email
| Provider | IMAP Host | IMAP Port | SMTP Host | SMTP Port |
|---|---|---|---|---|
| Gmail | imap.gmail.com | 993 | smtp.gmail.com | 587 |
| Outlook | outlook.office365.com | 993 | smtp.office365.com | 587 |
| Yahoo | imap.mail.yahoo.com | 993 | smtp.mail.yahoo.com | 465 |
| Mode | Description |
|---|---|
| Pairing (default) | Users must enter a pairing code to interact |
| Allowlist | Only pre-approved email addresses can message |
| Open | Anyone can message (not recommended) |
| Command | Description |
|---|---|
/workspaces |
List available workspaces |
/workspace <n> |
Select workspace by number |
/newtask |
Start fresh conversation |
/status |
Check bot status |
/cancel |
Cancel running task |
/pair <code> |
Pair with code |
/schedule <prompt> |
Schedule a recurring task |
/digest [lookback] |
Digest of recent chat messages |
/followups [lookback] |
Extract follow-ups/commitments |
/brief [today|week] |
Generate a brief summary (DM only) |
- Allowed Senders: Comma-separated email addresses to accept (leave empty for all)
-
Subject Filter: Only process emails containing this text in subject (e.g.,
[CoWork])
- Reply Threading: Maintains conversation threads via In-Reply-To headers
- Subject Filtering: Only process emails with specific subject patterns
- Sender Allowlist: Restrict to specific email addresses
- Universal: Works with any email provider supporting IMAP/SMTP
- App Passwords: Gmail/Outlook with 2FA require app passwords, not regular passwords
- No editing/deletion: Email doesn't support modifying sent messages
- Attachments: Not yet implemented
- Polling: Uses IMAP polling (default 30 seconds) - not instant delivery
Native menu bar companion for quick access without the main window.
- Quick access to workspaces and tasks
- Channel connection status
- New task shortcut
- Configure in Settings > Menu Bar
Press ⌘⇧Space from anywhere to open a floating input window:
- Global shortcut works from any app
- See responses inline
- Copy results to clipboard
Access CoWork OS from your iPhone, iPad, or Android device via the local network.
- CoWork OS running on your Mac
- Mobile device on the same local network (WiFi)
- Control Plane enabled with LAN access
-
Enable Control Plane:
- Open Settings > Control Plane
- Check Enable Control Plane
- Check Allow LAN Connections (Mobile Companions)
-
Get Connection Details:
- Note your Mac's local IP address (shown in Control Plane settings or run
ipconfig getifaddr en0) - Copy the authentication token (click Show then Copy)
- Note your Mac's local IP address (shown in Control Plane settings or run
-
Connect from Mobile App:
- Enter server URL:
ws://<your-mac-ip>:18789(e.g.,ws://192.168.1.100:18789) - Enter authentication token
- Tap Connect
- Enter server URL:
| Feature | Description |
|---|---|
| Task Creation | Create and run tasks from your mobile device |
| Real-time Updates | See task progress and results in real-time |
| Workspace Selection | Switch between workspaces |
| Secure Authentication | Token-based authentication protects access |
- LAN Only: Mobile companions connect via local network only (not exposed to internet)
- Token Required: Each connection requires the authentication token
- Firewall: Ensure your Mac's firewall allows connections on port 18789
- Same Network: Mobile device must be on the same WiFi network as your Mac
| Issue | Solution |
|---|---|
| Cannot connect | Verify "Allow LAN Connections" is enabled and restart the server |
| Connection refused | Check firewall settings, ensure port 18789 is accessible |
| Authentication failed | Regenerate and re-enter the authentication token |
| Server not found | Verify Mac's IP address, ensure both devices are on same network |
Multi-provider web search for research tasks with automatic retry and fallback.
- Automatic Retry: Transient errors (rate limits, timeouts) trigger automatic retry with exponential backoff
- Provider Fallback: If one provider fails, automatically tries the next configured provider
- Graceful Degradation: Returns helpful error messages instead of failing silently
| Provider | Types | Best For |
|---|---|---|
| Tavily | Web, News | AI-optimized results (recommended) |
| Brave Search | Web, News, Images | Privacy-focused |
| SerpAPI | Web, News, Images | Google results |
| Google Custom Search | Web, Images | Direct Google integration |
Configure in Settings > Web Search.
Claude Code-style tools for developers.
"Find all TypeScript test files"
→ glob pattern="**/*.test.ts"
"Find all TODO comments"
→ grep pattern="TODO:" glob="*.ts"
Smart Document Detection: Automatically detects document-heavy workspaces (PDF/DOCX/PPTX) and provides helpful guidance to use read_file instead, since grep only searches text files.
"Rename function getUser to fetchUser"
→ edit_file file_path="src/api.ts" old_string="function getUser" new_string="function fetchUser"
Fetch and parse web pages with HTML-to-text conversion.
"Get main content from docs"
→ web_fetch url="https://docs.example.com" selector="main"
Full HTTP client for API calls (curl-like).
"Check API endpoint"
→ http_request url="https://api.example.com/health" method="GET"
Configure in Settings > Integrations > Notion. Use notion_action to search, read, and update Notion content. Write actions (create, update, append, delete) require approval.
notion_action({
action: "search",
query: "Roadmap"
});notion_action({
action: "query_data_source",
data_source_id: "YOUR_DATA_SOURCE_ID",
filter: {
property: "Status",
select: { equals: "Active" }
},
sorts: [
{ property: "Updated", direction: "descending" }
],
page_size: 25
});notion_action({
action: "query_data_source",
data_source_id: "YOUR_DATA_SOURCE_ID",
start_cursor: "NEXT_CURSOR_FROM_PREVIOUS_RESPONSE",
page_size: 25
});notion_action({
action: "update_block",
block_id: "BLOCK_ID",
block_type: "paragraph",
block: {
rich_text: [{ text: { content: "Updated text" } }]
}
});
notion_action({
action: "delete_block",
block_id: "BLOCK_ID"
});Configure in Settings > Integrations > Box. Use box_action to search, read, and manage Box files and folders. Write actions (create, upload, delete) require approval.
box_action({
action: "search",
query: "Q4 report",
type: "file",
limit: 25
});box_action({
action: "upload_file",
file_path: "reports/summary.pdf",
parent_id: "0"
});Configure in Settings > Integrations > OneDrive. Use onedrive_action to search, read, and manage OneDrive files and folders. Write actions (create, upload, delete) require approval.
onedrive_action({
action: "search",
query: "Roadmap"
});onedrive_action({
action: "upload_file",
file_path: "reports/summary.pdf"
});Configure in Settings > Integrations > Google Workspace. Unified access to Gmail, Google Calendar, and Google Drive with shared OAuth authentication.
| Service | Tool | Actions |
|---|---|---|
| Drive | google_drive_action |
list_files, search, upload_file, download_file, delete_file |
| Gmail | gmail_action |
list_messages, search, send_email, read_email, create_draft |
| Calendar | google_calendar_action |
list_events, create_event, update_event, delete_event |
gmail_action({
action: "send_email",
to: "[email protected]",
subject: "Weekly Report",
body: "Please find the attached report..."
});google_calendar_action({
action: "create_event",
title: "Team Standup",
start_time: "2025-02-10T09:00:00",
end_time: "2025-02-10T09:30:00",
attendees: ["[email protected]"]
});google_drive_action({
action: "list_files",
page_size: 20
});Configure in Settings > Integrations > Dropbox. Use dropbox_action to search, read, and manage Dropbox files and folders. Write actions (create, upload, delete) require approval.
dropbox_action({
action: "list_folder",
path: "/Reports"
});dropbox_action({
action: "upload_file",
file_path: "reports/summary.pdf",
path: "/Reports/summary.pdf"
});Configure in Settings > Integrations > SharePoint. Use sharepoint_action to search sites and manage drive items. Write actions (create, upload, delete) require approval.
sharepoint_action({
action: "search_sites",
query: "Marketing"
});sharepoint_action({
action: "upload_file",
file_path: "reports/summary.pdf"
});Tell the agent what you want:
| Say this | Effect |
|---|---|
| "be more professional" | Changes to formal style |
| "be like Jarvis" | Adopts Jarvis persona |
| "use more emojis" | Increases emoji usage |
| "be brief" | Shorter responses |
| "call yourself Max" | Changes agent name |
Run completely offline and free.
# Install
brew install ollama
# Pull a model
ollama pull llama3.2
# Start server
ollama serve| Model | Size | Best For |
|---|---|---|
llama3.2 |
3B | Quick tasks |
qwen2.5:14b |
14B | Balanced performance |
deepseek-r1:14b |
14B | Coding tasks |
- Get API key from Google AI Studio
- Configure in Settings > Google Gemini
-
gemini-2.0-flash(default) -
gemini-2.5-pro(most capable) -
gemini-2.5-flash(fast)
Access multiple AI providers through one API.
- Get API key from OpenRouter
- Configure in Settings > OpenRouter
Claude, GPT-4, Gemini, Llama, Mistral, and more — see openrouter.ai/models
Standard pay-per-token access to GPT models.
Sign in with your ChatGPT subscription to use without additional API costs.
Configure these in Settings > LLM Provider by entering API keys/tokens, model IDs, and base URLs when required.
| Provider | Compatibility |
|---|---|
| OpenCode Zen | OpenAI-compatible |
| Google Vertex | OpenAI-compatible |
| Google Antigravity | OpenAI-compatible |
| Google Gemini CLI | OpenAI-compatible |
| Z.AI | OpenAI-compatible |
| GLM | OpenAI-compatible |
| Vercel AI Gateway | Anthropic-compatible |
| Cerebras | OpenAI-compatible |
| Mistral | OpenAI-compatible |
| GitHub Copilot | OpenAI-compatible |
| Moonshot (Kimi) | OpenAI-compatible |
| Qwen Portal | Anthropic-compatible |
| MiniMax | OpenAI-compatible |
| MiniMax Portal | Anthropic-compatible |
| Xiaomi MiMo | Anthropic-compatible |
| Venice AI | OpenAI-compatible |
| Synthetic | Anthropic-compatible |
| Kimi Code | OpenAI-compatible |
| OpenAI-Compatible (Custom) | OpenAI-compatible |
| Anthropic-Compatible (Custom) | Anthropic-compatible |
| Category | Skills |
|---|---|
| Developer | GitHub, GitLab, Linear, Jira, Sentry, Code Reviewer, Multi-PR Review, Developer Growth Analysis |
| Communication | Slack, Discord, Telegram, Email, Voice Calls (ElevenLabs Agents) |
| Productivity | Notion, Obsidian, Todoist, Apple Notes/Reminders/Calendar, PRD Generator, Memory Kit |
| Media | Spotify, YouTube, SoundCloud |
| Image | Image Generation (Gemini/OpenAI/Azure), Agentic Image Loop (visual annotation workflow) |
| Documents | Excel, Word, PDF, PowerPoint |
| Frontend | Frontend Design, React Native Best Practices |
| Data | Supabase SDK Patterns |
| Search | Local Web Search (SearXNG), Bird |
| Use Cases | Booking Options, Draft Reply, Family Digest, Household Capture, Newsletter Digest, Transaction Scan |
Connect to external MCP servers for extended capabilities.
Expose CoWork's tools as an MCP server for external clients.
Browse and install servers from a catalog with one-click installation.
Pre-built MCP server connectors for enterprise integrations. Install from Settings > MCP Servers > Browse Registry.
| Connector | Type | Tools |
|---|---|---|
| Salesforce | CRM |
health, list_objects, describe_object, get_record, search_records, create_record, update_record
|
| Jira | Issue Tracking |
health, list_projects, get_issue, search_issues, create_issue, update_issue
|
| HubSpot | CRM |
health, list_contacts, get_contact, search_contacts, create_contact, update_contact
|
| Zendesk | Support |
health, list_tickets, get_ticket, search_tickets, create_ticket, update_ticket
|
| ServiceNow | ITSM |
health, list_incidents, get_incident, search_incidents, create_incident, update_incident
|
| Linear | Product/Issue |
health, list_issues, get_issue, search_issues, create_issue, update_issue
|
| Asana | Work Management |
health, list_tasks, get_task, search_tasks, create_task, update_task
|
| Okta | Identity |
health, list_users, get_user, search_users, create_user, update_user
|
- Go to Settings > MCP Servers > Browse Registry
- Find the connector you need (e.g., Salesforce)
- Click Install
- Configure credentials when prompted (API keys, OAuth tokens, etc.)
- The connector tools become available to the agent
Use the connector template to build your own:
cp -r connectors/templates/mcp-connector connectors/my-connector
cd connectors/my-connector
npm install
# Edit src/index.ts to implement your tools
npm run buildSee docs/enterprise-connectors.md for the full connector contract and conventions.
Programmatic API for external automation and mobile companion apps.
- Challenge-response token authentication
- Request/response/event protocol
- Rate limiting for auth attempts
- Full task API (create, list, get, cancel)
- Real-time event streaming
- LAN Access: Enable "Allow LAN Connections" for mobile companion support
-
Web Dashboard: Built-in HTML dashboard at
http://127.0.0.1:18789/for headless management (tasks, approvals, workspaces, channels) -
Approval API: List and respond to pending approvals remotely (
approval.list,approval.respond) - Channel Management: Create, update, enable/disable, test, and remove channels via API
| Mode | Binding | Use Case |
|---|---|---|
| Local Only | 127.0.0.1:18789 |
Desktop automation, localhost only |
| LAN Access | 0.0.0.0:18789 |
Mobile companions, local network access |
Configure in Settings > Control Plane.
Secure remote access without port forwarding.
- Serve Mode: Expose to your private tailnet
- Funnel Mode: Public HTTPS via Tailscale edge network
- Automatic TLS certificates
Standard SSH port forwarding for remote access.
- Connect to remote instances
- Auto-reconnection with backoff
- Encrypted transport with keychain storage
Users must comply with their model provider's terms:
- [x] Multi-provider LLM support (20+ providers including Groq, xAI, Kimi, GitHub Copilot, OpenAI/Anthropic-compatible)
- [x] Multi-channel messaging (14 channels)
- [x] Configurable guardrails and security
- [x] Browser automation with Playwright
- [x] Code tools (glob, grep, edit_file)
- [x] Document creation (Excel, Word, PDF, PowerPoint)
- [x] MCP support (Client, Host, Registry)
- [x] WebSocket Control Plane with API
- [x] Tailscale and SSH remote access
- [x] Personality system
- [x] 85+ bundled skills (code reviewer, PRD, multi-PR review, frontend design, local websearch, developer growth, React Native, Supabase, bird)
- [x] 2800+ unit tests
- [x] Docker-based sandboxing (cross-platform)
- [x] Per-context security policies (DM vs group)
- [x] Enhanced pairing code UI with countdown
- [x] Persistent memory system with privacy protection
- [x] Mobile Companions with LAN access support
- [x] Voice Mode with ElevenLabs and OpenAI integration
- [x] Enterprise MCP Connectors (Salesforce, Jira, HubSpot, Zendesk, ServiceNow, Linear, Asana, Okta)
- [x] Cloud Storage Integrations (Notion, Box, OneDrive, Google Drive, Dropbox, SharePoint)
- [x] Visual Theme System (Modern/Terminal visual styles + Light/Dark/System color modes)
- [x] Workspace recency ordering
- [x] Web search retry with exponential backoff
- [x] Google Workspace Integration (Gmail, Calendar, Drive with shared OAuth)
- [x] Gateway channel cleanup and enhanced security (Matrix direct rooms, Slack groups)
- [x] Agent transient error retry logic for improved reliability
- [x] Smart parameter inference for document creation tools
- [x] Bedrock inference profile auto-resolution (auto-resolves model IDs to inference profiles)
- [x] Gateway hardening (group chat security, streaming coalescing, restart resilience, tool restrictions)
- [x] Outbound phone calls via ElevenLabs Agents (voice_call tool)
- [x] Workspace Kit (
.cowork/init + projects, markdown indexing, context injection, memory hub settings) - [x] Agentic Tribe (coordinated agentic execution with shared checklists, synchronized runs, and tribe UI)
- [x] Gateway pending selection state for workspace/provider commands (improved WhatsApp/iMessage UX)
- [x] Task result summary persistence from executor to daemon
- [x] Memory retention isolation for sub-agents and public contexts
- [x] Vision tool (
analyze_image) for workspace image analysis via OpenAI, Anthropic, or Gemini - [x] Email IMAP tool (
email_imap_unread) for direct mailbox access without Google Workspace - [x] Chat commands:
/schedule,/digest,/followups,/briefacross all gateway channels - [x] Inbound attachment persistence (channel messages save files to
.cowork/inbox/attachments/) - [x] Cron template variables (
{{today}},{{chat_messages}}, etc.) and conditional delivery - [x] Brave browser channel support via
browser_navigate(browser_channel: "chrome" | "chromium" | "brave") - [x] Image generation via
generate_imagewith multi-provider support (Gemini, OpenAI, Azure OpenAI) - [x] Visual annotation tools and Agentic Image Loop skill for iterative image refinement
- [x] Inline image preview in task event timeline
- [x] Local memory embeddings and cross-workspace ChatGPT imported memory search
- [x] Apple Calendar and Reminders tools (macOS native via AppleScript)
- [x] Gateway ambient mode (passive message ingestion) and self-message capture
- [x] Use-case skill templates (booking, draft reply, family digest, household capture, newsletter digest, transaction scan)
- [x] Headless Electron mode with env-based credential import (
COWORK_IMPORT_ENV_SETTINGS) - [x] Node.js daemon entrypoint for non-Electron headless deployments (
coworkd-node.js) - [x] Control plane web dashboard, approval API, and channel management API
- [x] Docker and VPS deployment support (Dockerfiles, docker-compose, systemd units)
- [x] Dedicated workspaces for scheduled cron jobs (auto-created from temp workspace)
- [x] Hook wake requests for heartbeat processing, including queueing, coalescing, and immediate scheduling
- [ ] VM sandbox using macOS Virtualization.framework
- [ ] Network egress controls with proxy
- [ ] Cross-platform UI support (Windows, Linux)
See CONTRIBUTING.md for guidelines.
See SECURITY.md for vulnerability reporting.
For end-user security guidance, see:
- SECURITY_GUIDE.md - Quick reference
-
docs/security/ - Comprehensive security documentation
- Security Model - Architecture overview
- Trust Boundaries - Isolation layers
- Configuration Guide - Setup instructions
- Best Practices - Recommended settings
MIT License. See LICENSE.
"Cowork" is an Anthropic product name. CoWork OS is an independent open-source project and is not affiliated with, endorsed by, or sponsored by Anthropic. If requested by the rights holder, we will update naming/branding.
For Tasks:
Click tags to check more tools for each tasksFor Jobs:
Alternative AI tools for CoWork-OS
Similar Open Source Tools
Lynkr
Lynkr is a self-hosted proxy server that unlocks various AI coding tools like Claude Code CLI, Cursor IDE, and Codex Cli. It supports multiple LLM providers such as Databricks, AWS Bedrock, OpenRouter, Ollama, llama.cpp, Azure OpenAI, Azure Anthropic, OpenAI, and LM Studio. Lynkr offers cost reduction, local/private execution, remote or local connectivity, zero code changes, and enterprise-ready features. It is perfect for developers needing provider flexibility, cost control, self-hosted AI with observability, local model execution, and cost reduction strategies.
prompt-guard
Prompt Guard is a tool designed to provide prompt injection defense for any LLM agent, protecting AI agents from manipulation attacks. It works with various LLM-powered systems like Clawdbot, LangChain, AutoGPT, CrewAI, etc. The tool offers features such as protection against injection attacks, secret exfiltration, jailbreak attempts, auto-approve & MCP abuse, browser & Unicode injection, skill weaponization defense, encoded & obfuscated payloads detection, output DLP, enterprise DLP, Canary Tokens, JSONL logging, token smuggling defense, severity scoring, and SHIELD.md compliance. It supports multiple languages and provides an API-enhanced mode for advanced detection. The tool can be used via CLI or integrated into Python scripts for analyzing user input and LLM output for potential threats.
OpenOutreach
OpenOutreach is a self-hosted, open-source LinkedIn automation tool designed for B2B lead generation. It automates the entire outreach process in a stealthy, human-like way by discovering and enriching target profiles, ranking profiles using ML for smart prioritization, sending personalized connection requests, following up with custom messages after acceptance, and tracking everything in a built-in CRM with web UI. It offers features like undetectable behavior, fully customizable Python-based campaigns, local execution with CRM, easy deployment with Docker, and AI-ready templating for hyper-personalized messages.
pluely
Pluely is a versatile and user-friendly tool for managing tasks and projects. It provides a simple interface for creating, organizing, and tracking tasks, making it easy to stay on top of your work. With features like task prioritization, due date reminders, and collaboration options, Pluely helps individuals and teams streamline their workflow and boost productivity. Whether you're a student juggling assignments, a professional managing multiple projects, or a team coordinating tasks, Pluely is the perfect solution to keep you organized and efficient.
botserver
General Bots is a self-hosted AI automation platform and LLM conversational platform focused on convention over configuration and code-less approaches. It serves as the core API server handling LLM orchestration, business logic, database operations, and multi-channel communication. The platform offers features like multi-vendor LLM API, MCP + LLM Tools Generation, Semantic Caching, Web Automation Engine, Enterprise Data Connectors, and Git-like Version Control. It enforces a ZERO TOLERANCE POLICY for code quality and security, with strict guidelines for error handling, performance optimization, and code patterns. The project structure includes modules for core functionalities like Rhai BASIC interpreter, security, shared types, tasks, auto task system, file operations, learning system, and LLM assistance.
Automodel
Automodel is a Python library for automating the process of building and evaluating machine learning models. It provides a set of tools and utilities to streamline the model development workflow, from data preprocessing to model selection and evaluation. With Automodel, users can easily experiment with different algorithms, hyperparameters, and feature engineering techniques to find the best model for their dataset. The library is designed to be user-friendly and customizable, allowing users to define their own pipelines and workflows. Automodel is suitable for data scientists, machine learning engineers, and anyone looking to quickly build and test machine learning models without the need for manual intervention.
Auto-Claude
Auto Claude is an autonomous multi-agent coding framework that plans, builds, and validates software for users. It provides features such as autonomous tasks handling planning, implementation, and validation, parallel execution with multiple agent terminals, isolated workspaces for safe changes, self-validating quality assurance, AI-powered merge for conflict resolution, memory layer for smarter builds, GitHub/GitLab integration, cross-platform native desktop apps, auto-updates, and more. The tool offers a visual Kanban board for task management, AI-powered terminals for parallel work, AI-assisted feature planning, insights chat interface, ideation for code improvements, performance issues, and vulnerabilities discovery, and changelog generation from completed tasks. It follows a three-layer security model with OS sandbox, filesystem restrictions, and dynamic command allowlist, ensuring security through VirusTotal scans, SHA256 checksums, and code-signing for macOS releases.
actor-core
Actor-core is a lightweight and flexible library for building actor-based concurrent applications in Java. It provides a simple API for creating and managing actors, as well as handling message passing between actors. With actor-core, developers can easily implement scalable and fault-tolerant systems using the actor model.
vibe-remote
Vibe Remote is a tool that allows developers to code using AI agents through Slack or Discord, eliminating the need for a laptop or IDE. It provides a seamless experience for coding tasks, enabling users to interact with AI agents in real-time, delegate tasks, and monitor progress. The tool supports multiple coding agents, offers a setup wizard for easy installation, and ensures security by running locally on the user's machine. Vibe Remote enhances productivity by reducing context-switching and enabling parallel task execution within isolated workspaces.
aegra
Aegra is a self-hosted AI agent backend platform that provides LangGraph power without vendor lock-in. Built with FastAPI + PostgreSQL, it offers complete control over agent orchestration for teams looking to escape vendor lock-in, meet data sovereignty requirements, enable custom deployments, and optimize costs. Aegra is Agent Protocol compliant and perfect for teams seeking a free, self-hosted alternative to LangGraph Platform with zero lock-in, full control, and compatibility with existing LangGraph Client SDK.
openakita
OpenAkita is a self-evolving AI Agent framework that autonomously learns new skills, performs daily self-checks and repairs, accumulates experience from task execution, and persists until the task is done. It auto-generates skills, installs dependencies, learns from mistakes, and remembers preferences. The framework is standards-based, multi-platform, and provides a Setup Center GUI for intuitive installation and configuration. It features self-learning and evolution mechanisms, a Ralph Wiggum Mode for persistent execution, multi-LLM endpoints, multi-platform IM support, desktop automation, multi-agent architecture, scheduled tasks, identity and memory management, a tool system, and a guided wizard for setup.
claude-talk-to-figma-mcp
A Model Context Protocol (MCP) plugin named Claude Talk to Figma MCP that enables Claude Desktop and other AI tools to interact directly with Figma for AI-assisted design capabilities. It provides document interaction, element creation, smart modifications, text mastery, and component integration. Users can connect the plugin to Figma, start designing, and utilize various tools for document analysis, element creation, modification, text manipulation, and component management. The project offers installation instructions, AI client configuration options, usage patterns, command references, troubleshooting support, testing guidelines, architecture overview, contribution guidelines, version history, and licensing information.
claude-code-mastery
Claude Code Mastery is a comprehensive tool for maximizing Claude Code, offering a production-ready project template with 16 slash commands, deterministic hook enforcement, MongoDB wrapper, live AI monitoring, and three-layer security. It provides a security gatekeeper, project scaffolding blueprint, MCP server integration, workflow automation through custom commands, and emphasizes the importance of single-purpose chats to avoid performance degradation.
ProxyPilot
ProxyPilot is a powerful local API proxy tool built in Go that eliminates the need for separate API keys when using Claude Code, Codex, Gemini, Kiro, and Qwen subscriptions with any AI coding tool. It handles OAuth authentication, token management, and API translation automatically, providing a single server to route requests. The tool supports multiple authentication providers, universal API translation, tool calling repair, extended thinking models, OAuth integration, multi-account support, quota auto-switching, usage statistics tracking, context compression, agentic harness for coding agents, session memory, system tray app, auto-updates, rollback support, and over 60 management APIs. ProxyPilot also includes caching layers for response and prompt caching to reduce latency and token usage.
Edit-Banana
Edit Banana is a universal content re-editor that allows users to transform fixed content into fully manipulatable assets. Powered by SAM 3 and multimodal large models, it enables high-fidelity reconstruction while preserving original diagram details and logical relationships. The platform offers advanced segmentation, fixed multi-round VLM scanning, high-quality OCR, user system with credits, multi-user concurrency, and a web interface. Users can upload images or PDFs to get editable DrawIO (XML) or PPTX files in seconds. The project structure includes components for segmentation, text extraction, frontend, models, and scripts, with detailed installation and setup instructions provided. The tool is open-source under the Apache License 2.0, allowing commercial use and secondary development.
