// 01_GETTING_STARTED

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
verify prerequisites
node --version    # Should be 18.0.0 or higher
docker --version  # Should show Docker version
claude --version  # Should show Claude Code version

Installation

terminal
# 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

terminal
# 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.

service flags
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.

example prompts
> 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:

terminal
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
// 02_WHY_KYBERBOT

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:

1.
Your AI should know you.

Not just in this conversation, but always. Memory is not a feature — it is the foundation.

2.
Your AI should grow.

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.

3.
Your data is yours.

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:

Sub-Agents: Spawn specialized agents for parallel execution. Delegate research to one, code review to another.
MCP Servers: Connect to databases, APIs, and services through a standardized interface.
Skills: Built-in skill system. KyberBot extends it with auto-generation — the agent creates its own skills.
Permissions: Granular permission controls. Allow read but not write, specific commands, certain directories.
Git Integration: Native git support. Commit changes, create branches, read diffs. Living documents are version-controlled.
File System: Read and write any file within permission boundaries. Manage documents, edit configs, maintain knowledge.

Subscription Model

KyberBot costs nothing beyond your Claude Code subscription:

KyberBotAPI-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 upgradesAutomaticRequires migration
Rate limitsClaude Code limitsAPI tier-dependent
AspectKyberBotLettaBot
LanguageTypeScriptPython
RuntimeClaude Code CLICustom Python server
LLM AccessSubscription ($0)API tokens (pay per use)
MemoryKybernesis Local + sleepCustom memory server
Self-EvolutionSOUL.md, USER.md, skillsStatic config files
Skill CreationAgent generates on the flyManual Python registration
Sub-AgentsNative Claude CodeSingle agent loop
SchedulingHEARTBEAT.md (natural)External cron
MessagingTelegram, WhatsApp built-inAPI endpoints (BYO client)
SetupClone + 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)
// 03_BRAIN

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.

Semantic Search(ChromaDB / Docker)

Search across all memories by meaning, not just keywords

Entity Graph(SQLite)

Track people, companies, projects, places, topics, and relationships

Timeline(SQLite)

Temporal log of events, conversations, and notes

Sleep Agent(Background)

Continuous memory maintenance and quality improvement

Hybrid Search

When the agent searches memory, it combines semantic and keyword search:

search@scoring
Final Score = (0.7 * semantic) + (0.3 * keyword) + priority_boost + tier_boost
Semantic score — 70% — cosine similarity of embeddings
Keyword score — 30% — BM25 text matching
Priority boost — +0.1 max — based on memory priority (0-1)
Tier boost — hot: +0.05, warm: 0, archive: -0.05

Sleep Agent Pipeline

The sleep agent runs continuously in the background, performing six maintenance steps:

1
DecayReduces priority of memories not accessed recently. 7+ days: -0.05, 30+ days: -0.10. Minimum floor: 0.1.
2
TagAI-refreshes tags on memories with outdated or sparse tags. Normalizes tagging conventions over time.
3
LinkDiscovers connections between related memories using Jaccard similarity on tags and entities.
4
TierMoves memories between hot/warm/archive tiers based on access patterns and priority scores.
5
SummarizeRegenerates summaries for memories that changed tiers.
6
Entity HygieneMerges duplicate entities, updates timestamps, removes orphaned relationships.
// 04_SELF_EVOLUTION

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

TraditionalKyberBot
Edit system prompt to change personalityAgent evolves SOUL.md through use
Write JSON config for preferencesAgent accumulates knowledge in USER.md
Set up cron jobs for tasksAgent manages HEARTBEAT.md tasks
Code new tools in Python/TSAgent generates skills in markdown
Manually clean stale dataSleep agent maintains memory quality

What Is Protected

Not everything can be modified by the agent. These files are protected and require manual editing:

FileWhy Protected
identity.yamlCore identity config. Changing this could break integrations.
.envSecrets and API keys. The agent should never write credentials.
CLAUDE.mdClaude Code instructions. Auto-generated, changes are overwritten.
settings.local.jsonClaude 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
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

MechanismWhat EvolvesFrequency
SOUL.mdPersonality, styleAs needed
USER.mdUser knowledgeAs new info arrives
HEARTBEAT.mdRecurring tasksWeekly review
SkillsCapabilitiesOn demand
Sub-agentsWorkflow specialistsRare
MemoryKnowledge qualityContinuous (sleep)
// 05_LIVING_DOCUMENTS

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.

soul.md
IDENTITY
# Agent Personality
Defines who the agent is: personality, values,
communication style, beliefs, and boundaries.
EVOLVES: explicit feedback, implicit patterns, self-reflection
Day 1: "Be helpful and clear."
Day 60: "Lead with the answer. No filler. Bullet points for 3+ items."
user.md
KNOWLEDGE
# User Knowledge
Accumulated knowledge about you: profile, work,
health, interests, family, goals, projects, routines.
GROWS: new info added per section, conflicts confirmed before overwriting
Week 1: "Software engineer. Building a SaaS product."
Week 8: Full profile with team, stack, projects, deadlines, patterns
heartbeat.md
SCHEDULE
# Recurring Tasks
Tasks the agent runs on a schedule. Natural language
instructions with cadence, time, and enable/disable.
08:00 Morning Briefing — calendar, tasks, messages
21:00 Evening Review — accomplishments, learnings
Mon 09:00 Weekly Planning — goals, blockers, prep

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.

// 06_SKILLS

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

skills/my-skill/SKILL.md
---
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
FieldRequiredDescription
nameYesUnique identifier (kebab-case)
descriptionYesOne-line summary
versionNoSemver version (default: 1.0.0)
requires_envNoEnvironment variables the skill needs
has_setupNoWhether 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:

1
AssessIs this task feasible with available tools?
2
ResearchDetermine best approach, tools, data format, storage
3
GenerateWrite skill directory and SKILL.md with complete metadata
4
ValidateRead back to verify well-formed and complete
5
ExecuteImmediately use the new skill for the original task
6
PersistSave file and rebuild CLAUDE.md to include it
auto-gen@example
CONVERSATION
You: Track my water intake. I want to log glasses and see daily totals.
Agent: I don't have a skill for water tracking yet. Let me create one.
      [Creates skills/water-tracker/SKILL.md]
Agent: Done. I've created a water tracking skill. How many glasses today?

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
// 07_CHANNELS

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.

ChannelAuth MethodFeatures
TelegramBotFather token + verification codeText messages, owner-only access
WhatsAppQR code scanText 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.

channel commands
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
// 08_ARCHITECTURE

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

file-structure
TREE
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
// 09_KYBERNESIS_CLOUD

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.

kybernesis commands
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.

GIVE_YOUR_AGENT_A_CLOUD_BRAIN

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_ACCOUNT
// 10_CLI_REFERENCE

CLI Reference

Complete reference for all KyberBot CLI commands. 16 top-level commands, 38 subcommands.

Core

kyberbot runStart all services
kyberbot onboardSet up a new agent
kyberbot updateUpdate CLI and refresh templates
kyberbot statusShow 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 timelineQuery 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 statusShow brain health and statistics

Sleep Agent

kyberbot sleep statusShow recent runs and stats
kyberbot sleep runRun sleep cycle immediately
kyberbot sleep edgesShow memory relationships
kyberbot sleep healthHealth check (for monitoring)
kyberbot sleep mergesEntity merge/cleanup audit trail

Heartbeat

kyberbot heartbeat listShow tasks from HEARTBEAT.md
kyberbot heartbeat statusShow config and execution state
kyberbot heartbeat runTrigger an immediate heartbeat tick

Skills

kyberbot skill listShow 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 rebuildRebuild CLAUDE.md with current skills

Sub-Agents

kyberbot agent listShow 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 rebuildRebuild CLAUDE.md with current agents

Channels

kyberbot channel listShow configured channels
kyberbot channel add <type>Add a messaging channel
kyberbot channel remove <type>Remove a messaging channel
kyberbot channel statusCheck connectivity

Kybernesis Cloud

kyberbot kybernesis query <message>Search the cloud brain
kyberbot kybernesis listList all cloud memories
kyberbot kybernesis statusCheck connection status
kyberbot kybernesis disconnectRemove API key, switch to local-only