Getting Started
Prerequisites
REQUIRED
- ✓Node.js 18+ — runtime for the KyberBot CLI
- ✓Docker — required for memory services
- ✓Claude Code subscription — KyberBot runs on top of Claude Code
OPTIONAL
- ○Telegram account — if you want to message your agent via Telegram
- ○WhatsApp — if you want to message your agent via WhatsApp
node --version # Should be 18.0.0 or higher docker --version # Should show Docker version claude --version # Should show Claude Code version
Installation
# Install KyberBot (one time) git clone https://github.com/KybernesisAI/kyberbot.git cd kyberbot npm install && npm run build cd packages/cli && npm link && cd ../.. # Create your agent mkdir ~/my-agent && cd ~/my-agent kyberbot onboard
Think of the kyberbot/ folder like installing an app — you don't work inside it. The agent folder is your agent. Everything it knows, everything it learns, its entire personality and memory — all lives there.
The kyberbot onboard wizard walks you through 7 steps:
Starting Services
# Start all services (leave running) kyberbot # In a new terminal — talk to your agent cd ~/my-agent && claude
This starts memory services (Docker), the REST API server, heartbeat scheduler, sleep agent, and any configured messaging channels. You'll see a splash screen with your agent's name and service status.
kyberbot # Start all services kyberbot --no-sleep # Disable sleep agent kyberbot --no-channels # Disable messaging channels kyberbot --no-heartbeat # Disable heartbeat scheduler
First Conversation
When you first open Claude Code in your agent folder, the agent will warmly introduce itself and ask to learn about you. This is normal — it is reading its SOUL.md and USER.md for the first time and wants to fill in the gaps. Share as much or as little as you like — everything gets stored in its brain for future sessions.
> Hey Atlas, what do you know about me? > Remember that my product launch deadline is June 15th. > What's on my schedule today? > Create a skill for tracking my running mileage.
Updating
When a new version is released, the update command handles both the CLI source update and template refresh inside your agent instance:
cd ~/my-agent kyberbot update # Full update: CLI source + agent templates kyberbot update --check # Preview what would change kyberbot update --templates # Only refresh template files
Why KyberBot?
The Core Idea
Most personal AI agent projects follow the same pattern: build a custom framework, wrap an LLM API, manage tokens, handle tool calling, implement memory from scratch, and deploy a server. The result is a complex system that costs money per token and requires ongoing maintenance.
KyberBot takes a different approach: build on top of Claude Code instead of building from scratch. Claude Code is already an exceptional AI agent. It just lacks persistence — memory, identity, scheduling, and communication channels. KyberBot adds exactly those things. Nothing more.
Philosophy
KyberBot is built on three beliefs:
Not just in this conversation, but always. Memory is not a feature — it is the foundation.
Static configurations are a snapshot. Living documents that the agent updates are a trajectory. The agent should get better at helping you without you doing anything.
Local-first. No data leaves your machine unless you choose to sync it. No vendor lock-in. MIT licensed.
The Claude Code Advantage
By building on Claude Code, KyberBot inherits capabilities that would take months to build from scratch:
Subscription Model
KyberBot costs nothing beyond your Claude Code subscription:
| KyberBot | API-Based | |
|---|---|---|
| Base cost | $0 (uses subscription) | $0 |
| Per-message cost | $0 | $0.01-0.10+ |
| Heavy usage (1000 msgs/day) | $0 | $10-100+/day |
| Model upgrades | Automatic | Requires migration |
| Rate limits | Claude Code limits | API tier-dependent |
| Aspect | KyberBot | LettaBot |
|---|---|---|
| Language | TypeScript | Python |
| Runtime | Claude Code CLI | Custom Python server |
| LLM Access | Subscription ($0) | API tokens (pay per use) |
| Memory | Kybernesis Local + sleep | Custom memory server |
| Self-Evolution | SOUL.md, USER.md, skills | Static config files |
| Skill Creation | Agent generates on the fly | Manual Python registration |
| Sub-Agents | Native Claude Code | Single agent loop |
| Scheduling | HEARTBEAT.md (natural) | External cron |
| Messaging | Telegram, WhatsApp built-in | API endpoints (BYO client) |
| Setup | Clone + onboard (2 min) | Docker + API keys + config |
Choose LettaBot if you want Python-native, self-hosted inference, or non-Claude models.
Choose KyberBot if you want the simplest path to a capable personal agent with self-evolution out of the box.
Who Is KyberBot For?
IDEAL_FOR
- Claude Code power users who want persistence between sessions
- Developers who want a personal agent without building a framework
- People who value privacy and want local-first data
- Anyone tired of re-explaining context to AI every session
NOT_IDEAL_FOR
- Teams looking for a shared agent platform (KyberBot is personal, single-user)
- Non-Claude users who want to use GPT, Gemini, or open-source models
- Production API services that need to serve multiple users at scale
- People without a Claude Code subscription (it is required)
Brain — Memory Architecture
The brain is KyberBot's long-term memory. It has four components that work together to let the agent remember conversations, track relationships, maintain a timeline, and continuously improve memory quality. All data lives locally — nothing leaves your machine unless you opt into Kybernesis Cloud.
Search across all memories by meaning, not just keywords
Track people, companies, projects, places, topics, and relationships
Temporal log of events, conversations, and notes
Continuous memory maintenance and quality improvement
Hybrid Search
When the agent searches memory, it combines semantic and keyword search:
Sleep Agent Pipeline
The sleep agent runs continuously in the background, performing six maintenance steps:
Self-Evolution
KyberBot agents are not static. They evolve over days, weeks, and months through four mechanisms:
Living Documents
SOUL.md, USER.md, HEARTBEAT.md are continuously updated by the agent
Skill Auto-Generation
The agent creates new skills when it encounters unfamiliar tasks
Sub-Agent Creation
Specialized agents spawned for complex multi-step workflows
Memory Maintenance
Sleep agent continuously refines and organizes stored knowledge
Evolution Over Time
| Traditional | KyberBot |
|---|---|
| Edit system prompt to change personality | Agent evolves SOUL.md through use |
| Write JSON config for preferences | Agent accumulates knowledge in USER.md |
| Set up cron jobs for tasks | Agent manages HEARTBEAT.md tasks |
| Code new tools in Python/TS | Agent generates skills in markdown |
| Manually clean stale data | Sleep agent maintains memory quality |
What Is Protected
Not everything can be modified by the agent. These files are protected and require manual editing:
| File | Why Protected |
|---|---|
| identity.yaml | Core identity config. Changing this could break integrations. |
| .env | Secrets and API keys. The agent should never write credentials. |
| CLAUDE.md | Claude Code instructions. Auto-generated, changes are overwritten. |
| settings.local.json | Claude Code settings and permissions. |
Safeguards
Every change the agent makes is trackable via git. Major changes are confirmed before writing. The agent tells you when it updates a living document. Evening reviews summarize what was learned and changed, giving you regular checkpoints to correct course.
git log --oneline SOUL.md # See how personality evolved git log --oneline USER.md # See knowledge accumulation git diff HEAD~10 SOUL.md # Compare current vs 10 commits ago git checkout HEAD~5 SOUL.md # Revert to an earlier version
Summary
| Mechanism | What Evolves | Frequency |
|---|---|---|
| SOUL.md | Personality, style | As needed |
| USER.md | User knowledge | As new info arrives |
| HEARTBEAT.md | Recurring tasks | Weekly review |
| Skills | Capabilities | On demand |
| Sub-agents | Workflow specialists | Rare |
| Memory | Knowledge quality | Continuous (sleep) |
Living Documents
Three markdown files define your agent's identity, knowledge, and routine. The agent reads them at session start and updates them as it learns.
Document Interaction
The three documents work together: SOUL.md tells the agent how to communicate, USER.md tells it what it knows about you, and HEARTBEAT.md tells it what to do on a schedule. When running a heartbeat task, the agent reads all three for context. During conversation, it reads SOUL.md and USER.md and may update them with new information.
Best practice: Let the agent write. Start minimal. Review periodically. Use git history. Correct explicitly when something is wrong — "That's wrong, I actually prefer X" is more effective than silently editing the file.
Skills
Skills are reusable capabilities — markdown files with structured metadata that teach the agent how to perform specific tasks your way, every time.
SKILL.md Format
--- name: running-tracker description: Track and analyze running mileage version: 1.0.0 requires_env: [] has_setup: false --- # Running Tracker ## What This Does Track daily runs and calculate weekly/monthly totals. ## How to Use - "log a run" - "running mileage" - "how far did I run" ## Implementation 1. Extract: distance, duration, date, notes 2. Store in brain with tag "running" 3. Calculate weekly/monthly totals when queried 4. Compare against goals in USER.md
| Field | Required | Description |
|---|---|---|
| name | Yes | Unique identifier (kebab-case) |
| description | Yes | One-line summary |
| version | No | Semver version (default: 1.0.0) |
| requires_env | No | Environment variables the skill needs |
| has_setup | No | Whether the skill has a setup script |
Auto-Generation
The most powerful way to create skills is to let the agent do it. The skill generator follows a consistent process:
Lifecycle Commands
kyberbot skill list # List all installed skills kyberbot skill info <name> # Show details kyberbot skill create <name> # Scaffold a new skill kyberbot skill remove <name> # Remove a skill kyberbot skill setup <name> # Run skill setup kyberbot skill rebuild # Rebuild CLAUDE.md with current skills
Channels — Messaging Integration
Send a message on Telegram or WhatsApp and get a response from your agent with full personality, memory, and skill context. Both channels are optional.
| Channel | Auth Method | Features |
|---|---|---|
| Telegram | BotFather token + verification code | Text messages, owner-only access |
| QR code scan | Text messages, voice notes, media |
1. Create a bot — Talk to @BotFather on Telegram, send /newbot, get your token.
2. Add the channel
kyberbot channel add telegram
3. Verify ownership — On first start, KyberBot prints a verification code to the console. Send /start CODE to your bot. Only your account will be able to interact with it.
Security: One-time verification code (console only), owner-only access, silent rejection of non-owner messages, persistent across restarts.
kyberbot channel list # List configured channels kyberbot channel add telegram # Add Telegram kyberbot channel add whatsapp # Add WhatsApp kyberbot channel add telegram --reverify # Re-pair Telegram kyberbot channel remove telegram # Remove a channel kyberbot channel status # Check status
Architecture
Three Modes
Agent SDK (Recommended)
Uses @anthropic-ai/claude-code programmatically. No API keys, no per-token costs. Full Claude Code features.
SDK Mode
Direct Anthropic API via @anthropic-ai/sdk. Requires ANTHROPIC_API_KEY. Standard token costs. No Claude Code features.
Subprocess (Fallback)
Spawns claude -p as a child process. Same capabilities as Agent SDK but higher overhead. Automatic fallback.
File Structure
my-agent/ ├── SOUL.md # Agent personality (living) ├── USER.md # User knowledge (living) ├── HEARTBEAT.md # Recurring tasks (living) ├── identity.yaml # Agent identity config ├── .env # Secrets and configuration ├── heartbeat-state.json # Scheduler state │ ├── brain/ # Markdown knowledge files │ ├── projects/ │ └── people/ │ ├── skills/ # Skill files │ └── my-skill/ │ └── SKILL.md │ ├── data/ # Runtime data (gitignored) │ ├── chromadb/ # Vector storage │ ├── entity-graph.db # Entity graph │ ├── timeline.db # Timeline │ └── sleep.db # Sleep agent state │ ├── .claude/ # Claude Code config │ ├── CLAUDE.md # Operating instructions │ └── settings.local.json │ └── logs/ # Application logs
Kybernesis — Optional Cloud Brain
Kybernesis is an optional cloud service that provides a queryable workspace memory for your agent. KyberBot works fully offline without it — Kybernesis adds cross-device access and cloud-backed recall that complements your local brain.
Setup
1. Sign up at kybernesis.ai and create a workspace
2. Generate an API key in Settings > API Keys
3. Add to your .env:
KYBERNESIS_API_KEY=your_api_key_here
That's all. No agent_id, no workspace_id, no identity.yaml changes. Can also be configured during onboarding.
kyberbot kybernesis query "..." # Search cloud workspace memory kyberbot kybernesis list # Browse all memories kyberbot kybernesis status # Check connection status kyberbot kybernesis disconnect # Switch to local-only memory
Disconnecting
To switch back to local-only memory:
kyberbot kybernesis disconnect
This removes the API key from .env. After disconnecting, restart the server and Claude. Your cloud memories are preserved — nothing is deleted. To reconnect later, add the key back to .env.
Privacy
Kybernesis sees only the queries you send to it. It does NOT see your .env, local brain, WhatsApp/Telegram sessions, or Claude Code credentials. Data is encrypted in transit and at rest. You can delete your workspace and all data at any time. Kybernesis does not use your data for model training.
Using Without Kybernesis
KyberBot is fully functional without Kybernesis. All memory, search, and agent features work locally. Kybernesis adds convenience (cloud-backed recall, cross-device access) but is not required for any core functionality. The entire brain is in your project directory under data/ and brain/ — back it up with any method you prefer.
Kybernesis handles the hard parts of memory — hybrid search, automatic tiering, a sleep agent that maintains quality while you're away. Start free.
CREATE_FREE_ACCOUNTCLI Reference
Complete reference for all KyberBot CLI commands. 16 top-level commands, 38 subcommands.
Core
| kyberbot run | Start all services |
| kyberbot onboard | Set up a new agent |
| kyberbot update | Update CLI and refresh templates |
| kyberbot status | Show service health dashboard |
run: --no-channels, --no-sleep, --no-heartbeat, -v/--verbose | update: --check, --templates | status: --json
Memory
| kyberbot remember <text> | Store to timeline, entity graph, and embeddings |
| kyberbot recall [query] | Look up person, project, or topic from entity graph |
| kyberbot search <query> | Semantic search across all indexed content |
| kyberbot timeline | Query timeline of events and conversations |
Brain
| kyberbot brain query <prompt> | Ask the brain a question (search + AI synthesis) |
| kyberbot brain search <query> | Semantic search across the brain |
| kyberbot brain add <file> | Index a file into the brain |
| kyberbot brain status | Show brain health and statistics |
Sleep Agent
| kyberbot sleep status | Show recent runs and stats |
| kyberbot sleep run | Run sleep cycle immediately |
| kyberbot sleep edges | Show memory relationships |
| kyberbot sleep health | Health check (for monitoring) |
| kyberbot sleep merges | Entity merge/cleanup audit trail |
Heartbeat
| kyberbot heartbeat list | Show tasks from HEARTBEAT.md |
| kyberbot heartbeat status | Show config and execution state |
| kyberbot heartbeat run | Trigger an immediate heartbeat tick |
Skills
| kyberbot skill list | Show installed skills |
| kyberbot skill create <name> | Scaffold a new skill |
| kyberbot skill remove <name> | Remove a skill |
| kyberbot skill info <name> | Show skill details |
| kyberbot skill setup <name> | Run setup script for a skill |
| kyberbot skill rebuild | Rebuild CLAUDE.md with current skills |
Sub-Agents
| kyberbot agent list | Show installed agents |
| kyberbot agent create <name> | Scaffold a new agent |
| kyberbot agent remove <name> | Remove an agent |
| kyberbot agent info <name> | Show agent details |
| kyberbot agent spawn <name> <prompt> | Spawn an agent with a task |
| kyberbot agent rebuild | Rebuild CLAUDE.md with current agents |
Channels
| kyberbot channel list | Show configured channels |
| kyberbot channel add <type> | Add a messaging channel |
| kyberbot channel remove <type> | Remove a messaging channel |
| kyberbot channel status | Check connectivity |
Kybernesis Cloud
| kyberbot kybernesis query <message> | Search the cloud brain |
| kyberbot kybernesis list | List all cloud memories |
| kyberbot kybernesis status | Check connection status |
| kyberbot kybernesis disconnect | Remove API key, switch to local-only |