Channels
Wizard Setup
Interactive assistant setup with cogitator wizard.
Overview
The cogitator wizard command provides an interactive TUI to configure a personal AI assistant. It generates a cogitator.yml config and .env file with all required secrets.
Quick Start
npx @cogitator-ai/cli wizardThe wizard walks you through:
- LLM provider and model — Google, OpenAI, Anthropic, or Ollama
- Channels — Telegram, Discord, Slack (with token prompts)
- Capabilities — web search, file system access, scheduler, RAG
- Memory — adapter, knowledge graph, auto-extraction
- Personality — custom system prompt for the assistant
After setup, start the assistant:
cogitator upEditing an Existing Config
Re-run the wizard with --edit to modify an existing cogitator.yml:
cogitator wizard --editThis loads the current config and lets you change individual sections.
Generated Files
cogitator.yml
name: jarvis
personality: |
You are Jarvis, a personal AI assistant.
llm:
provider: google
model: google/gemini-2.5-flash
channels:
telegram:
ownerIds: ["123456789"]
capabilities:
webSearch: true
scheduler: true
memory:
adapter: sqlite
path: ~/.cogitator/memory.db
knowledgeGraph: true.env
GOOGLE_API_KEY=your-api-key
TG_TOKEN=your-telegram-bot-tokenProgrammatic Equivalent
Instead of the wizard, you can use RuntimeBuilder directly:
import { RuntimeBuilder } from '@cogitator-ai/channels';
const builder = new RuntimeBuilder({
name: 'jarvis',
personality: 'You are Jarvis, a personal AI assistant.',
llm: { provider: 'google', model: 'google/gemini-2.5-flash' },
channels: { telegram: { ownerIds: ['123456789'] } },
capabilities: { webSearch: true, scheduler: true },
memory: { adapter: 'sqlite', path: '~/.cogitator/memory.db', knowledgeGraph: true },
}, process.env);
const runtime = await builder.build();
await runtime.gateway.start();Config Reference
| Field | Type | Default | Description |
|---|---|---|---|
name | string | required | Assistant name |
personality | string | required | System prompt / personality |
llm.provider | google | openai | anthropic | ollama | required | LLM provider |
llm.model | string | required | Model identifier (e.g. google/gemini-2.5-flash) |
channels | object | {} | Channel configs (telegram, discord, slack) |
capabilities | object | {} | Enabled capabilities |
memory.adapter | sqlite | postgres | sqlite | Memory storage backend |
memory.knowledgeGraph | boolean | true | Enable knowledge graph |
memory.autoExtract | boolean | true | Auto-extract entities from conversations |
stream.flushInterval | number | 600 | Stream flush interval (ms) |
stream.minChunkSize | number | 30 | Minimum chunk size before flushing |
rateLimit.maxPerMinute | number | 30 | Per-user rate limit |