Turn Claude Code into a persistent personal assistant with autonomous memory, multi-channel support, and intelligent task delegation.
Claude-Agent is a ready-to-use Claude Code project that transforms Claude into a long-running personal assistant. It receives messages from multiple channels (Telegram, Discord, webhooks, terminal), remembers context across sessions, and delegates complex tasks to specialist agents — all within Claude Code's native architecture.
| Category | What |
|---|---|
| 49 Skills | Productivity, smart home, media, messaging, security — full OpenClaw feature parity |
| 4 Use Methods | CLI, Web UI (localhost:3456), Desktop App (.dmg/.exe), Telegram/Discord |
| 12-Page Control Panel | Chat, History, Projects, Skills, Agents, Memory, MCP, Secrets, Schedule, Config Bot, Settings, Channels |
| Scheduled Tasks | Cron-based agent scheduling with execution history and manual trigger |
| Project Discussion | Multi-expert roundtable, debate, relay modes with streaming + Markdown output |
| 4 Agents | researcher, writer, analyst, content-publisher (import/export/create with AI) |
| Persistent Memory | Autonomous markdown-based memory surviving compaction and restarts |
| 4 MCP Servers | trend-pulse, claude-101, cf-browser, notebooklm (66 tools) |
| CLI Detection | Auto-detects claude, codex, gemini, opencode, node, uvx, gh |
| Content Pipeline | Trend discovery → patent-scored posts → NotebookLM image cards / podcasts |
| 4 Lifecycle Hooks | Session bootstrap, message classifier, context guardian, session farewell |
| i18n | English, 繁體中文, 日本語 — all 12 pages fully translated |
| OpenClaw Migration | One-click import of memory, skills, agents, config |
| Desktop App | Electron packaging for macOS (.dmg), Windows (.exe), Linux (.AppImage) |
claude-agent/
├── .claude/
│ ├── settings.json Hook configuration + env vars
│ ├── hooks/ (4) Session lifecycle (Node.js)
│ ├── agents/ (4) researcher, writer, analyst, content-publisher
│ ├── skills/ (49) 7 categories — see Skills Reference below
│ └── rules/ (4) memory, channels, MCP, content quality
├── app/ Web UI + Desktop App + Bridges
│ ├── server/
│ │ ├── index.ts Express + WebSocket (port 3456)
│ │ ├── agent.ts Claude Code SDK wrapper
│ │ ├── db.ts SQLite (sessions, messages, settings, channels, tasks)
│ │ ├── scheduler.ts Cron task scheduler (node-cron)
│ │ ├── discussion.ts Multi-expert discussion engine
│ │ ├── telegram.ts Built-in Telegram bridge
│ │ └── discord.ts Built-in Discord bridge
│ ├── client/
│ │ ├── App.tsx React 18 + Tailwind (12 pages)
│ │ ├── i18n.ts Translations (en, zh-TW, ja)
│ │ └── components/ (12) Chat, History, Projects, Skills, Agents, Memory, MCP, Secrets, Tasks, Config Bot, Settings, Channels
│ ├── electron/main.cjs Desktop app entry point
│ └── package.json App dependencies
├── memory/ Persistent memory (auto-managed)
├── scripts/migrate-openclaw.cjs One-click OpenClaw migration
├── workspace/ Runtime output (gitignored)
├── .mcp.json 4 MCP servers (trend-pulse, claude-101, cf-browser, notebooklm)
├── CLAUDE.md Assistant identity + operating rules
└── README.md
git clone https://github.com/claude-world/claude-agent.git
cd claude-agent- Node.js >= 18
- Claude Code CLI — for Method 1 & 3. Install here
| Method | Best For | Command |
|---|---|---|
| 1. CLI | Developers, terminal users | claude |
| 2. Web UI | Everyone, visual setup | cd app && npm install && npm run dev |
| 3. Telegram/Discord | Mobile, on-the-go | Via CLI Channels or Web UI |
# Start Claude Code in the project directory
claude
# First time? Run guided setup
/setup/setup will:
- Detect your OS and installed CLI tools
- Configure your profile (name, timezone, language)
- Show available skills grouped by category
- Set up scheduled routines (memory consolidation, daily briefing)
After setup, just talk naturally:
- "What's the weather in Taipei?"
- "Play some music"
- "Remind me to call the dentist at 3pm"
- "What's trending?"
cd app
npm install # First time only
npm run dev # Start the control panelOpen http://localhost:3456 in your browser.
12 Pages:
| Page | Description |
|---|---|
| 💬 Chat | Talk to your agent with streaming responses and tool call visualization |
| 📋 History | Browse all session messages, search across conversations, view tool calls |
| 🏛️ Projects | Multi-expert collaborative discussion with cross-CLI debate |
| ⚡ Skills | Browse 49 skills, search, import/export, create new skills with AI |
| 🤖 Agents | Manage 4 agents, import/export, create new agents with AI |
| 🧠 Memory | View and edit your agent's memory files |
| 🔌 MCP | Add/remove MCP servers, view tool counts and tier status |
| 🔑 Secrets | Store API tokens and credentials, auto-injected as env vars |
| ⏰ Schedule | Cron-based task scheduling, assign to agents, execution history |
| 🛠️ Config Bot | Configure the entire system through natural language conversation |
| ⚙️ Settings | Language, model, CLI detection, project directory, OpenClaw migration |
| 📡 Channels | Configure Telegram/Discord bots with start/stop and live status |
Option A: Via Claude Code Channels (native)
# Telegram
/plugin install telegram@claude-plugins-official
/telegram:configure YOUR_BOT_TOKEN
claude --channels plugin:telegram@claude-plugins-official
# DM your bot → get pairing code → /telegram:access pair ABCDEF
# Discord
/plugin install discord@claude-plugins-official
/discord:configure YOUR_BOT_TOKEN
claude --channels plugin:discord@claude-plugins-official
# DM your bot → get pairing code → /discord:access pair ABCDEF
# Both together
claude --channels plugin:telegram@claude-plugins-official,plugin:discord@claude-plugins-officialOption B: Via Web UI
- Start the Web UI:
cd app && npm run dev - Go to Channels page
- Click "Add Telegram Bot" or "Add Discord Bot"
- Paste your bot token → Save → Enable
- Messages from Telegram/Discord flow through the agent with full skill access
How to get a bot token:
- Telegram: Open @BotFather →
/newbot→ copy the token - Discord: https://discord.com/developers/applications → New Application → Bot tab → Reset Token → copy token. Enable "Message Content Intent". Invite to your server via OAuth2 URL Generator (scope:
bot, permissions: Send Messages, Read Message History)
Your agent is ready. Here's what you can do:
"Good morning" → Daily briefing with tasks & news
"Research AI coding tools" → Web research with summary
"Create a post about X" → Patent-scored social content
"Make a podcast about X" → AI podcast via NotebookLM
"Play some music" → Spotify control
"Check my email" → Email via himalaya
"What's trending?" → 20 free trend sources
"Remind me at 3pm to..." → Task with cron reminder
All 49 skills respond to natural language. No need to memorize commands.
cd app
npm install
# Run as desktop app (dev mode)
npm run electron:dev
# Build distributable
npm run electron:build:mac # → release/Claude Agent.dmg
npm run electron:build:win # → release/Claude Agent Setup.exe
npm run electron:build:linux # → release/Claude Agent.AppImageThe desktop app bundles the web UI + server into a single native application. No browser needed.
cd app
npm install
npm run build # Build optimized client
npm run start # Start production server
# → http://localhost:3456For background operation:
# tmux
tmux new -d -s agent 'cd app && npm run start'
# PM2
pm2 start "npm run start" --name claude-agent --cwd app┌─────────────────────────────────────────────────────────────┐
│ Session Start │
│ session-bootstrap.cjs → loads memory into context │
└─────────────┬───────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Message Arrives │
│ message-classifier.cjs → classifies intent, adds routing │
│ hints (research? task? brainstorm? simple reply?) │
└─────────────┬───────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Claude Processes │
│ - Simple: answer directly in main context │
│ - Complex: delegate to skill or agent │
│ - Memory: auto-save facts, threads, tasks │
└──────┬──────────────────────────────────┬───────────────────┘
│ │
▼ ▼
┌──────────────┐ ┌─────────────────────────────┐
│ Compaction │ │ Session End │
│ context- │ │ session-farewell.cjs → │
│ guardian → │ │ archive session, update │
│ preserve │ │ thread state │
│ active state│ └─────────────────────────────┘
└──────────────┘
| Message Pattern | Routed To |
|---|---|
| Quick question | Main context (direct reply) |
| "Research..." / "Find out about..." | /quick-research skill |
| "Remind me..." / "Add task..." | /task-tracker skill |
| "Summarize..." / shared URL | /summarize skill |
| "Draft an email..." | /draft-message skill |
| "Brainstorm..." / "Ideas for..." | /brainstorm skill |
| "Good morning" | /daily-briefing skill |
| "Memory status" | /memory-manager skill |
| "Context health" | /context-health skill |
| Complex multi-source research | researcher agent |
| Long-form content creation | writer agent |
| Data analysis / comparison | analyst agent |
Claude-Agent autonomously manages its own memory without being asked:
| Event | Memory Action |
|---|---|
| New fact about you | Updates user-profile.md |
| New conversation thread | Updates active-threads.md |
| New task or reminder | Updates pending-tasks.md |
| Interesting learning | Appends to learned-today.md |
| New contact mentioned | Updates contacts.md |
| Every 30 minutes | /memory-manager consolidates & archives |
| Session end | Hook archives session state |
| Command | Model | Description |
|---|---|---|
/memory-manager |
haiku | Consolidate, prune, archive memory files |
/task-tracker |
haiku | Manage tasks, set reminders with cron |
/quick-research |
sonnet | Web search + summary (3-5 sources) |
/daily-briefing |
sonnet | Morning overview: tasks, threads, news |
/summarize |
haiku | Condense articles, URLs, or long text |
/draft-message |
sonnet | Compose emails/messages in your style |
/brainstorm |
sonnet | Structured ideation with multiple perspectives |
/context-health |
haiku | Monitor context window and memory status |
/skill-creator |
sonnet | Create new skills from descriptions |
| Command | Model | Description |
|---|---|---|
/trend-scout |
haiku | Trending topics from 20 free sources |
/content-creator |
sonnet | Patent-scored social content + image cards |
/podcast-maker |
sonnet | AI podcast + video via NotebookLM |
/deep-read |
haiku | JS-rendered page reading via headless Chrome |
/image-gen |
haiku | Generate images via OpenAI DALL-E API |
/rss-monitor |
haiku | Monitor RSS/Atom feeds for updates |
| Command | Model | Description |
|---|---|---|
/email |
sonnet | Email via himalaya CLI (IMAP/SMTP) |
/google-workspace |
sonnet | Gmail, Calendar, Drive, Sheets, Docs |
/github-ops |
sonnet | GitHub issues, PRs, CI via gh CLI |
/gh-issues |
sonnet | Auto-fix GitHub issues + open PRs |
/notion |
haiku | Notion pages, databases, blocks |
/obsidian |
haiku | Obsidian vault notes CRUD |
/trello |
haiku | Trello boards, lists, cards |
/things-mac |
haiku | Things 3 task manager (macOS) |
/pdf-editor |
haiku | Edit, merge, extract PDFs |
/bear-notes |
haiku | Bear app note management |
/apple-notes |
haiku | Apple Notes via memo CLI |
/apple-reminders |
haiku | Apple Reminders via remindctl |
| Command | Model | Description |
|---|---|---|
/imessage |
haiku | iMessage via imsg CLI (macOS) |
/whatsapp |
haiku | WhatsApp via wacli CLI |
/slack-ops |
haiku | Slack API messaging |
/x-twitter |
haiku | X/Twitter via xurl CLI |
| Command | Model | Description |
|---|---|---|
/spotify |
haiku | Spotify playback control |
/sonos |
haiku | Sonos multi-room audio |
/hue-lights |
haiku | Philips Hue light control |
/smart-bed |
haiku | Eight Sleep pod control |
/camera |
haiku | RTSP/ONVIF camera capture |
/video-extract |
haiku | Video frames/clips via ffmpeg |
/speech-to-text |
haiku | Whisper transcription (local) |
/text-to-speech |
haiku | TTS via say/sherpa/ElevenLabs |
/gif-search |
haiku | Search and download GIFs |
| Command | Model | Description |
|---|---|---|
/weather |
haiku | Weather via wttr.in (no API key) |
/places |
haiku | Google Places search |
/password-manager |
haiku | 1Password secrets via op CLI |
/security-audit |
haiku | Host security check (no install) |
/tmux-control |
haiku | Remote-control tmux sessions |
/session-logs |
haiku | Search past session logs |
/peekaboo |
haiku | macOS UI automation/screenshots |
| Command | Model | Description |
|---|---|---|
/migrate-openclaw |
sonnet | One-click migration from OpenClaw |
| Agent | Model | Use Case |
|---|---|---|
researcher |
sonnet | Deep research requiring 5-10 sources, comparative analysis |
writer |
sonnet | Long-form content: articles, reports, essays (500+ words) |
analyst |
sonnet | Data analysis, decision matrices, pros/cons evaluation |
content-publisher |
sonnet | Full pipeline: trends → research → write → score → visuals → package |
Agents save detailed output to workspace/ and return concise summaries to the main context.
Claude-Agent comes pre-configured with 4 MCP servers that unlock advanced capabilities.
Prerequisites: Install uv (Python package runner, needed for uvx):
curl -LsSf https://astral.sh/uv/install.sh | sh| Server | Tools | Capabilities |
|---|---|---|
| trend-pulse | 11 | 20 free trend sources, patent-based content scoring, platform specs |
| claude-101 | 27 | 24 use-case templates: email drafting, code scaffolding, data analysis |
No setup needed — these work out of the box.
| Server | Tools | Setup | Capabilities |
|---|---|---|---|
| cf-browser | 15 | CF credentials | Headless Chrome: JS rendering, screenshots, structured extraction |
| notebooklm | 13 | Google login | AI podcasts, slides, reports, quizzes, research |
# 1. Get Cloudflare credentials:
# https://dash.cloudflare.com → Account ID (in sidebar)
# https://dash.cloudflare.com/profile/api-tokens → Create Token
# → Use "Edit Cloudflare Workers" template or custom with Browser Rendering permission
# 2. Add to your shell profile (~/.zshrc or ~/.bashrc):
export CF_ACCOUNT_ID="your-account-id"
export CF_API_TOKEN="your-api-token"
# 3. Reload shell
source ~/.zshrc
# 4. Verify: restart claude in the project dir, then try:
# /deep-read https://some-javascript-heavy-site.com# 1. One-time Google login (opens Chromium browser):
uvx notebooklm login
# → Sign in with your Google account
# → Session saved to ~/.notebooklm/
# 2. Verify: restart claude in the project dir, then try:
# /podcast-maker "AI coding tools in 2026" enThe new skills chain together into a powerful content creation pipeline:
/trend-scout → Discover what's trending (20 sources)
↓
/content-creator <topic> → Research + write + patent-score the post
↓
[with-image flag] → Generate NotebookLM image card
↓
Ready to publish → Scored draft in workspace/
Alternative paths:
/podcast-maker <topic> → AI podcast (M4A) + optional video (MP4)
/deep-read <URL> → Extract content from JS-heavy pages
content-publisher agent → Full autonomous pipeline (trend → package)
| Skill | Command | Model | Description |
|---|---|---|---|
| Trend Scout | /trend-scout |
haiku | Trending topics from 20 free sources with velocity tracking |
| Content Creator | /content-creator |
sonnet | Patent-scored social content with optional image cards |
| Podcast Maker | /podcast-maker |
sonnet | AI podcast + video generation via NotebookLM |
| Deep Read | /deep-read |
haiku | Read JS-rendered pages via headless Chrome |
| Agent | Model | Use Case |
|---|---|---|
content-publisher |
sonnet | Full pipeline: discover trends → research → write → score → visuals → package |
All MCP-powered features degrade gracefully:
- No trend-pulse:
/trend-scoutfalls back to WebSearch - No cf-browser:
/content-creatorand/deep-readuse WebFetch instead - No notebooklm: Image cards and podcasts are skipped with setup instructions shown
- No MCPs at all: The core skills + agents work without any MCP server
Coming from OpenClaw? Claude-Agent includes a one-click migration tool.
# Preview what will be migrated (no changes made)
node scripts/migrate-openclaw.cjs --dry-run
# Run the migration
node scripts/migrate-openclaw.cjs
# Custom OpenClaw path
node scripts/migrate-openclaw.cjs --openclaw-dir /path/to/.openclawWhat gets migrated:
| OpenClaw | claude-agent | Transform |
|---|---|---|
SOUL.md |
CLAUDE.md |
Personality merged into identity section |
MEMORY.md |
memory/user-profile.md |
Knowledge base imported |
memory/*.md |
memory/archive/ |
Daily logs copied (last 30 days) |
skills/*/SKILL.md |
.claude/skills/*/SKILL.md |
Frontmatter adapted to Claude Code format |
AGENTS.md |
.claude/agents/*.md |
Workflows split into individual agents |
TOOLS.md |
.claude/rules/tool-conventions.md |
Converted to rule file (created during migration) |
sessions/ |
memory/active-threads.md |
Recent sessions summarized |
openclaw.json |
.mcp.json |
MCP server configs extracted |
Or use the skill interactively: /migrate-openclaw
Create a file at .claude/skills/<skill-name>/SKILL.md:
---
name: my-skill
description: What this skill does
allowed-tools:
- Read
- Write
- WebSearch
model: haiku
user-invocable: true
when_to_use: When the user says "my trigger phrase"
---
# My Skill
Instructions for what the skill should do...Then add a routing entry in CLAUDE.md under the Task Delegation table.
Create a file at .claude/agents/<agent-name>.md:
---
name: my-agent
description: What this agent specializes in
tools:
- Read
- Write
- WebSearch
model: sonnet
---
# My Agent
Instructions for the agent's process, output format, and rules...Hooks are in .claude/hooks/ and configured in .claude/settings.json. Each hook:
- Receives JSON on stdin with session context
- Outputs JSON on stdout with instructions for Claude
- Has a hard timeout to prevent blocking
Edit .claude/rules/memory-policy.md to change what gets saved, how often, and the archival rules.
| Directory | Managed By | Git Tracked |
|---|---|---|
.claude/ |
You (human) | Yes |
memory/ (templates) |
You (human) | Yes |
memory/ (content) |
Claude (auto) | Partial (templates only) |
memory/archive/ |
Claude (auto) | No |
workspace/ |
Claude (auto) | No |
Memory template files (memory/user-profile.md, memory/active-threads.md, memory/pending-tasks.md) are tracked in git with empty placeholders. As Claude populates them with your personal data, do not push these files to a public repository. If you fork this project, add these to your .gitignore:
memory/user-profile.md
memory/active-threads.md
memory/pending-tasks.md
Runtime files (memory/archive/, workspace/, memory/learned-today.md, memory/contacts.md) are already gitignored.
- Claude Code CLI — Latest version recommended
- Node.js >= 18 — For hooks (uses only built-in
fsandpathmodules) - uv (optional) — For MCP servers. Install:
curl -LsSf https://astral.sh/uv/install.sh | sh - No additional npm dependencies
Built by Claude World — the Claude Code advanced usage community.