// 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    # Node 20 or 22 LTS recommended (must be <25)
docker --version  # Should show Docker version
claude --version  # Should show Claude Code version
pnpm --version    # pnpm 9+ required (install: npm i -g pnpm)

Installation

terminal
# Install KyberBot (one time)
git clone https://github.com/KybernesisAI/kyberbot.git
cd kyberbot
pnpm install && pnpm run build
cd packages/cli && pnpm link --global && 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 system. It stores conversations, tracks entities and relationships, extracts structured facts with source confidence, detects contradictions, generates insights through reasoning, and continuously improves quality through background maintenance. 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)

Entities, relationships, alias dedup, narrative profiles, noise filtering

Fact Store(SQLite)

Structured facts with source confidence, contradiction tracking, and decay

Timeline(SQLite)

Temporal log of events, conversations, and notes

Reasoning Engine(Sleep Agent)

Deduction and induction — derives insights the agent wasn’t explicitly told

Sleep Agent(Background)

10-step cycle: decay, tag, link, tier, summarize, facts, profiles, reasoning, hygiene

Hybrid Search

Searches use Reciprocal Rank Fusion (RRF) to merge semantic, keyword, and temporal results without tuned weights. For entity queries, a 5-layer fact-first retrieval expands through the entity graph.

search@scoring
RRF Score = sum( 1 / (k + rank) ) per result list, k=60
Semantic — ChromaDB cosine similarity
Keyword — SQLite FTS5 full-text matching
Temporal — Date expression matching
Fact-first — 3-hop entity graph expansion + scene bridging
Tier boost — hot: +0.05, warm: 0, archive: -0.05

Sleep Agent Pipeline

The sleep agent runs continuously in the background, performing a 10-step maintenance cycle every hour:

1
DecayReduces priority of stale memories. Also runs weekly fact confidence decay on old unreinforced AI/chat facts.
2
TagAI-refreshes tags on memories with outdated or sparse tags.
3
ConsolidateMerges redundant timeline entries (e.g., repeated heartbeat tasks).
4
LinkDiscovers connections between memories using Jaccard similarity on tags and entities.
5
TierMoves memories between hot/warm/archive tiers based on access patterns.
6
SummarizeRegenerates summaries for memories that changed tiers.
7
ObserveExtracts structured facts from unprocessed conversations with contradiction detection.
8
ProfileRegenerates user profile from the fact store for system prompt injection.
9
ReasoningRuns deduction and induction on entities with 3+ facts to generate insights.
10
Entity HygieneMerges duplicates, prunes noise, generates entity narrative profiles.
// 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_DESKTOP_APP

Desktop App

KyberBot Desktop is an Electron app that wraps the CLI in a full GUI. One-click install, no terminal required — everything you can do from the command line, you can do from the app.

Dashboard

Service status cards, start/stop controls, ANSI-colored log viewer

Chat

SSE streaming responses with tool call visualization

Brain

p5.js entity graph visualization, entity browser, notes, timeline, search

Skills & Channels

Install, configure, and manage skills and messaging channels

Agent Switcher

Dropdown to switch between agents without restarting the app

Settings

Heartbeat management, theme toggle (dark/light), system tray with start/stop/quit

Installation

Download the DMG for macOS, or build from source:

build from source
git clone https://github.com/KybernesisAI/kyberbot.git
cd kyberbot
pnpm install

pnpm run dev          # Development with hot reload
pnpm run build        # Production build
pnpm run package:mac  # Creates DMG

Onboarding Wizard

First launch opens a 10-step onboarding wizard that walks you through agent creation, personality setup, Claude Code configuration, brain initialization, cloud sync, and channel setup — the same steps as kyberbot onboard but with a visual interface.

// 09_MULTI_AGENT

Multi-Agent Setup

Run multiple KyberBot agents simultaneously, each with their own identity, memory, skills, and channels. A global registry tracks all agents and auto-assigns ports so they never collide. In fleet mode, agents are aware of each other and can proactively reach out during chat and heartbeat sessions — no user intervention required (see Agent Bus). Agents can also run on remote machines (VPS, other computers) and be managed alongside local agents — see Remote Agents for details.

Agent Registry

Global registry at ~/.kyberbot/registry.yaml tracks all agents, their paths, ports, and status.

Port Auto-Assignment

New agents automatically get the next available port (3456, 3457, 3458...). No manual configuration.

Independent Operation

Each agent runs on its own port with its own server, database, and ChromaDB collection.

Resource Efficient

Fleet mode runs all agents in a single process at ~2MB per additional agent vs ~300MB for separate processes.

Three Modes of Operation

Single Agent

Run kyberbot from an agent directory. Original behavior — one agent, one process, one port.

Multiple Independent Agents

Start each agent separately in its own terminal. Each gets its own process, port, and services.

Fleet Mode (Recommended)

kyberbot fleet start runs all registered agents in a shared Node.js process with shared sleep scheduler, agent bus, and fleet management API.

Fleet mode is the most efficient way to run multiple agents:

  • Single process — one Node.js process, one port for fleet management (3456)
  • Per-agent ports — each agent also listens on its own port so existing tunnel URLs keep working
  • Shared sleep scheduler — round-robin instead of N independent sleep agents
  • Agent Bus — inter-agent communication (see next section)
  • Fleet API — /fleet, /fleet/agents, /fleet/bus/* endpoints for management
  • Agent routing — each agent accessible via /agent/{name}/* on the fleet port

Fleet CLI Commands

fleet management
kyberbot fleet list                    # Show registered agents
kyberbot fleet register [path]         # Register an agent at path
kyberbot fleet unregister <name>       # Remove from registry
kyberbot fleet start                   # Start all agents in shared runtime
kyberbot fleet start --only atlas,nova # Start specific agents
kyberbot fleet stop [name]             # Stop agents
kyberbot fleet status                  # Health dashboard
kyberbot fleet defaults --auto-start a,b  # Set default agents
// 10_AGENT_BUS

Agent Bus

The Agent Bus is an inter-agent communication system. Agents can send messages to each other and receive Claude-powered responses — enabling delegation, knowledge sharing, incident coordination, and second opinions across your agent fleet. With proactive communication, agents autonomously decide when to reach out to each other during conversations and heartbeat tasks.

Proactive Communication

Agents are not limited to user-initiated bus commands. Every agent in the fleet is automatically aware of every other agent — their names, roles, and specializations are injected into every system prompt (chat sessions, heartbeat tasks, and messaging channels). During any conversation or heartbeat task, an agent can autonomously decide to contact another agent via kyberbot bus send.

Fleet Awareness

Every agent knows about every other agent in the fleet. Names, roles, and specializations are injected into system prompts automatically.

Autonomous Outreach

Agents decide on their own when to contact another agent. No user intervention required — they just do it during normal operation.

When to Communicate

Domain expertise needed, cross-domain issues, incident escalation, second opinions on important decisions, knowledge that other agents need.

When NOT to Communicate

Routine tasks the agent can handle alone, trivial or low-value information, questions the agent can answer from its own memory.

How It Works

The bus is an in-process EventEmitter-based message system. When agent A sends a message to agent B, the following happens:

1
Brain searchAgent B searches its brain for relevant context related to the message
2
Identity loadAgent B reads its SOUL.md to maintain its personality in the response
3
Claude callThe message plus context is sent to Claude for a synthesized response
4
Memory storeThe conversation is stored in Agent B’s memory for future recall
5
Response returnThe response is returned to Agent A

Topic Subscriptions

Agents can subscribe to topics from specific agents or from the entire fleet. When a matching message is sent on the bus, subscribers get a notification queued for their next heartbeat cycle or chat session — no interruption to their current work.

identity.yaml
subscriptions:
  - from: atlas
    topic: security
  - from: "*"
    topic: incident
subscription commands
kyberbot bus subscribe <from> <topic>    # Subscribe to messages on a topic
kyberbot bus unsubscribe <from> <topic>  # Remove a subscription
kyberbot bus subscriptions               # List active subscriptions

Message Types

TypeDescription
queryAsk another agent a question and get a response
notifyInform an agent of something (fire-and-forget)
delegateHand off a task to another agent
responseReply to a previous message

Broadcast: Send a message to all agents at once by setting to: '*' or using the broadcast command.

Persistence

All bus messages are stored in SQLite at ~/.kyberbot/bus.db. Messages survive fleet restarts and are fully searchable by agent, topic, and date.

Safety

Rate limitingMax 10 sends per hour per agent — prevents runaway spam
Loop preventionBus responses are terminal — agents cannot trigger infinite message chains
Cost controlBus responses use sonnet model with max 1024 tokens

CLI Commands

agent bus
kyberbot bus send <agent> "<message>"    # Send to specific agent
kyberbot bus broadcast "<message>"       # Broadcast to all agents
kyberbot bus history                     # Show recent messages
kyberbot bus history --agent nova        # Filter by agent
kyberbot bus subscribe <from> <topic>    # Subscribe to messages on a topic
kyberbot bus unsubscribe <from> <topic>  # Remove a subscription
kyberbot bus subscriptions               # List active subscriptions

API Endpoints

When running in fleet mode, the fleet server exposes bus endpoints:

EndpointBody / Params
POST /fleet/bus/send{ from, to, message, topic }
POST /fleet/bus/broadcast{ from, message, topic }
GET /fleet/bus/history?agent=nova&limit=20
POST /fleet/bus/subscribe{ agent, from, topic }
DELETE /fleet/bus/subscribe{ agent, from, topic }
GET /fleet/bus/subscriptions?agent=atlas
Autonomous delegation: Atlas's heartbeat detects a performance issue — it autonomously reaches out to Nova for a marketing impact assessment before escalating.
Knowledge sharing: Nova learns something about a customer in a Telegram conversation — it broadcasts the insight to the fleet so all agents stay current.
Incident coordination: Atlas detects a service down during a heartbeat task — it broadcasts an alert and all agents get notified on their next heartbeat cycle.
Cross-domain expertise: A user asks Atlas about content strategy — Atlas autonomously asks Nova (the marketing agent) and synthesizes the response.
Subscription-based monitoring: Echo subscribes to all "incident" topics — it gets queued notifications without interrupting its current work, and processes them on the next heartbeat.
// 11_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

Multi-Agent Runtime

When running in fleet mode, the architecture extends to support multiple agents in a single process. Each agent is wrapped in an AgentRuntime that manages its own server, databases, channels, and heartbeat scheduler. The FleetManager orchestrates all runtimes, exposes the fleet API, and provides a shared FleetSleepScheduler that runs sleep cycles round-robin across agents instead of each agent running its own independent sleep process.

Each agent maintains its own ChromaDB collection for vector isolation, ensuring that brain searches only return results from the queried agent's memory. The Agent Bus connects all runtimes via an in-process EventEmitter, enabling inter-agent messaging without network overhead. In fleet mode, each agent also listens on its own per-agent port so existing tunnel URLs and channel webhooks continue to work unchanged.

// 12_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
// 13_CLI_REFERENCE

CLI Reference

Complete reference for all KyberBot CLI commands. 18 top-level commands, 55 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

Tunnel

kyberbot tunnel setupConfigure ngrok authtoken and enable tunnel
kyberbot tunnel statusCheck active tunnel status
kyberbot tunnel startManually start ngrok tunnel

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

Fleet

kyberbot fleet listShow registered agents with status
kyberbot fleet register [path]Register agent at path
kyberbot fleet register-remote <name>Register a remote agent via ngrok URL
kyberbot fleet unregister <name>Remove from registry
kyberbot fleet startStart fleet (shared runtime)
kyberbot fleet stop [name]Stop agents
kyberbot fleet statusFleet health dashboard
kyberbot fleet defaultsSet auto-start defaults

start: --only <agents>  |  defaults: --auto-start <agents>  |  register-remote: --url <ngrok-url> --token <api-token>

Agent Bus

kyberbot bus send <agent> <msg>Send message to agent (Claude-powered response)
kyberbot bus broadcast <msg>Broadcast to all agents
kyberbot bus historyShow message history
kyberbot bus subscribe <from> <topic>Subscribe to messages on a topic
kyberbot bus unsubscribe <from> <topic>Remove a subscription
kyberbot bus subscriptionsList active subscriptions

history: --agent <name>, --limit <n>  |  subscribe: from can be "*" for all agents

Orchestration

kyberbot orch initRun the orchestration setup wizard
kyberbot orch statusCompany overview, workloads, issue counts
kyberbot orch orgDisplay the org chart
kyberbot orch org set <agent>Add/update agent in org chart (--role, --reports-to, --ceo)
kyberbot orch org remove <agent>Remove agent from orchestration
kyberbot orch goalsList goals with KPI progress
kyberbot orch goals createCreate a new goal (interactive or flags)
kyberbot orch goals <id>Goal detail with KPIs and children
kyberbot orch issuesList open issues (kanban-style)
kyberbot orch issues createCreate a new issue
kyberbot orch issues <id>Issue detail with comments
kyberbot orch issues assign <id> <agent>Assign issue to an agent
kyberbot orch issues transition <id> <status>Move issue to a new status
kyberbot orch inboxShow pending inbox escalations
kyberbot orch inbox resolve <id>Resolve an inbox item
kyberbot orch activityRecent activity log

issues: --all (include done/cancelled)  |  activity: --agent <name>  |  See Orchestration docs for full details

// 14_REMOTE_AGENTS

Remote Agents

Manage agents running on other machines (VPS, other computers) from your desktop app or CLI. Agents communicate across machines via the Agent Bus.

Set Up a Remote Agent

Install KyberBot on the remote machine and configure it to accept incoming connections via an ngrok tunnel.

1

Install KyberBot

Install KyberBot on the remote machine (VPS, cloud server, another laptop).

2

Create the agent

Run kyberbot onboard to create the agent with its own identity, brain, and skills.

3

Enable ngrok tunnel

In identity.yaml, set tunnel: { enabled: true } so the agent is reachable from the internet.

4

Start the agent

Run kyberbot run. The agent starts its server and opens the ngrok tunnel.

5

Copy connection details

Copy the ngrok URL and API token from the startup output. You'll need these to register the agent.

Register from CLI

Use the fleet CLI to register the remote agent with its ngrok URL and API token.

register remote agent
kyberbot fleet register-remote nova --url https://xyz.ngrok.dev --token kb_xxx
kyberbot fleet list  # Shows both local and remote agents

Register from Desktop

1

Open the agent dropdown in the title bar

2

Click "Add Remote Agent"

3

Enter the agent name, ngrok URL, and API token

4

The agent appears in the dropdown with a remote indicator

How Communication Works

Local → Remote

Bus message routed via HTTP POST to the remote agent's /api/bus/receive endpoint.

Remote → Local

Remote agent sends via kyberbot bus send to the fleet server's tunnel URL.

Persistent History

All messages stored in SQLite bus history on both sides for durability.

Claude-Powered Responses

Remote agent searches its own brain and uses its own personality to generate responses.

Limitations

  • Can't start/stop remote agents from the desktop (no process control)
  • Log streaming not available for remote agents
  • Configuration changes require direct access to the remote machine

Security

HTTPS

All communication via HTTPS — ngrok provides TLS termination automatically.

Bearer Token Auth

Every request includes a bearer token. Unauthenticated requests are rejected.

Per-Agent Tokens

Each agent has its own API token. Compromising one token doesn't affect other agents.

// 15_ORCHESTRATION

Orchestration

Orchestration lets you organize your fleet of agents into a company. A CEO agent drives strategy — setting goals, creating issues, assigning work, and managing the backlog — while worker agents execute tasks autonomously. Humans only intervene when agents escalate blockers to the inbox. The entire system is managed from the desktop app; no CLI required.

Company Metaphor

Your agents form a company with a CEO, workers, goals, KPIs, projects, and a Kanban issue board. The CEO thinks strategically; workers execute.

Human-in-the-Loop

Agents escalate blockers to a shared inbox. You review, respond, or dismiss from the desktop app. No babysitting required for normal operation.

Fully Autonomous

The CEO heartbeat reads all state, creates and assigns issues, and @-mentions workers. Workers auto-checkout issues and run them through Claude.

Setup

Orchestration is initialized through a setup wizard in the desktop app. Open the Orchestration tab and you'll see the setup screen where you configure your company.

1

Company Name

Choose a name for your agent company. This appears in the org chart header and issue board.

2

Description

A short description of the company's mission. The CEO agent uses this as context when making strategic decisions.

3

CEO Selection

Pick which agent in your fleet will serve as CEO. This agent gets the orchestrator heartbeat and drives all planning.

4

Team Auto-Populated

All other agents in the fleet are automatically added as workers. You can add or remove agents from orchestration later without affecting the fleet itself.

You can also initialize from the CLI with kyberbot orch init.

Org Chart

The org chart visualizes your company hierarchy. The CEO sits at the top and worker agents are arranged below. Adding or removing an agent from orchestration is independent of the fleet registry — an agent can be in the fleet without participating in orchestration.

CEO at Top

The CEO agent card sits at the root of the tree with a teal accent. It shows the agent name, role, and status.

Workers Below

Worker agents are displayed beneath the CEO with connecting lines. Each shows the agent's name and role from identity.yaml.

Add / Remove Agents

Click Edit to add agents from the fleet or remove them from orchestration. Names and descriptions are read-only — always sourced from identity.yaml.

Reassign CEO

In edit mode you can change which agent is the orchestrator. The new CEO picks up the orchestrator heartbeat on the next cycle.

Goals & KPIs

Goals give the CEO strategic direction. They exist at three levels: company, team, and agent. Each goal can have measurable KPIs attached, and goals form a hierarchy through parent/child relationships so team-level goals roll up into company objectives.

Company

Top-level objectives visible to all agents. Set by the human or the CEO.

Team

Goals scoped to a group of agents. The CEO creates team goals and assigns them.

Agent

Personal goals for a single agent. Workers can propose their own goals.

Projects

Projects group related goals and issues under a named umbrella. Every goal and issue can optionally belong to a project. Projects have two states: active and archived. Archiving a project hides its issues from the default board view but preserves all history.

Issue Board (Kanban)

The issue board is a seven-column Kanban view. Issues are the atomic unit of work — the CEO creates them, assigns them to workers, and workers execute them autonomously. Every issue gets a sequential ID in the format KYB-N.

ColumnDescription
BacklogIdeas and future work. Not yet prioritized or assigned.
TodoPrioritized and ready. The next issue a worker will pick up.
In ProgressCurrently being worked on by an agent.
In ReviewWork complete, awaiting review by the CEO or another agent.
DoneSuccessfully completed. Results visible in comments.
BlockedCannot proceed. Agent has escalated to the inbox.
CancelledIntentionally abandoned. Preserved for audit trail.

Drag-and-drop: Drag issue cards between columns to manually change status. Click any card to open a slide-over panel with full details, comments, and inline editing.

Priority levels: Issues have four priority levels — critical, high, medium, and low. Workers always pick up the highest-priority issue first. Critical issues interrupt current work.

CEO Heartbeat

The CEO agent runs a special orchestrator heartbeat on a configurable interval (default: 30 minutes). Each heartbeat is a full strategic planning cycle where the CEO reads all available state and takes action.

What the CEO reads: Company goals and KPIs, all active projects, full issue board state, org chart and worker assignments, pending inbox items, recent activity log, and agent workload metrics.

What the CEO does: Creates new issues based on goals, assigns them to appropriate workers, manages the backlog, reviews completed work, responds to escalations, @-mentions workers to trigger execution, and proposes new goals or adjusts KPI targets.

Rate limits: The CEO is capped at 5 new issues and 3 new goals per heartbeat to prevent runaway planning.

Worker Heartbeat

Worker agents process issues through a serial queue. Each heartbeat, the worker checks out the highest-priority issue assigned to it, executes the work via Claude, and reports results.

1
Check outPicks the highest-priority Todo issue and moves it to In Progress.
2
ExecuteInvokes Claude with the issue description, project context, and scoped permissions.
3
Comment resultsPosts a comment with what was done, files created, and output.
4
TransitionOn success, moves to In Review. On failure, retries up to 3 times before moving to Blocked.
5
Auto-blockAfter 3 consecutive failures, the issue is blocked and an escalation is sent to the inbox.

@-Mention Triggers

When any agent or human posts a comment containing @agentname, that agent's heartbeat is triggered immediately. This is how the CEO delegates work in real time and how humans can direct agents from the desktop app.

CEO to Worker

CEO creates an issue, assigns it, and @-mentions the worker. The worker's heartbeat fires immediately.

Worker to CEO

A worker @-mentions the CEO to request review or flag a concern.

Worker to Worker

Workers can @-mention each other for peer review or handoff.

Human to Agent

You can @-mention any agent in a comment from the desktop app to trigger their heartbeat.

Human Inbox

The inbox is where agents escalate problems they cannot solve. When a worker hits a blocker — a missing credential, an ambiguous requirement, a permission they lack — it creates an inbox item instead of guessing. The desktop app shows a badge count on the Inbox tab.

Urgency levels: high, normal, and low. High urgency items indicate production-impacting blockers where multiple agents may be stalled.

Responding: From the inbox, you can dismiss (no action needed), resolve (unblocks the linked issue), or respond with a comment. Using @agentname in your response triggers that agent's heartbeat so it can act on your guidance immediately.

Activity Log

Every action in the orchestration system is recorded in a full audit trail: issue creation, status transitions, assignments, comments, goal changes, inbox escalations, and heartbeat runs. The Activity tab displays events in reverse chronological order, filterable by agent and event type.

Artifacts / Files

When agents produce output — code files, reports, configuration changes — these are automatically detected from the Claude session output and linked as artifacts. The Files tab aggregates all artifacts across all issues, filterable by agent. Click any artifact to view its contents inline.

Live Session Logs

Every heartbeat run produces a session log. The Dashboard shows recent runs with their start time, duration, agent, and outcome. Click a run to view its full stream-json output in real time (for active runs) or after completion. Logs use offset-based polling for efficient incremental updates.

Settings

SettingDefaultDescription
Auto-orchestrationonWhen enabled, the CEO heartbeat runs automatically. Disable for manual-only.
Heartbeat interval30mHow often the CEO heartbeat fires. Workers respond on-demand via @-mentions.
Active hoursAlwaysTime window for auto-orchestration. Set start/end times to pause overnight.

CLI Reference

All orchestration features are accessible from the kyberbot orch command group. Changes from the CLI are immediately visible in the desktop app and vice versa.

orchestration commands
kyberbot orch init                          # Run the setup wizard
kyberbot orch status                        # Company overview, workloads, issue counts
kyberbot orch org                           # Display the org chart
kyberbot orch goals                         # List goals with KPI progress
kyberbot orch goals create "<title>"        # Create a new goal
kyberbot orch issues                        # List open issues
kyberbot orch issues create "<title>"       # Create a new issue
kyberbot orch issues assign <id> <agent>    # Assign an issue
kyberbot orch issues transition <id> <status>  # Move an issue
kyberbot orch inbox                         # Show pending inbox items
kyberbot orch inbox resolve <id>            # Resolve an inbox item
kyberbot orch activity                      # Recent activity log

REST API

In fleet mode, the fleet server exposes orchestration endpoints under /fleet/orch/*. The desktop app communicates exclusively through these endpoints.

EndpointDescription
GET /fleet/orch/dashboardCompany overview, agent workloads, issue counts
GET|PUT /fleet/orch/orgOrg chart management
GET|POST /fleet/orch/goalsList and create goals
GET|PUT /fleet/orch/goals/:idGoal detail and updates
GET|POST /fleet/orch/issuesList and create issues
POST /fleet/orch/issues/:id/transitionStatus transitions
GET|POST /fleet/orch/issues/:id/commentsComment thread with @-mention triggers
GET|POST /fleet/orch/inboxInbox items
GET /fleet/orch/activityActivity log
GET|POST /fleet/orch/projectsProject management
GET /fleet/orch/runsHeartbeat run history
GET /fleet/orch/runs/:id/logSession log streaming
GET|PUT /fleet/orch/settingsOrchestration settings
POST /fleet/orch/heartbeat/:agentManual heartbeat trigger