Cogitator
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 wizard

The wizard walks you through:

  1. LLM provider and model — Google, OpenAI, Anthropic, or Ollama
  2. Channels — Telegram, Discord, Slack (with token prompts)
  3. Capabilities — web search, file system access, scheduler, RAG
  4. Memory — adapter, knowledge graph, auto-extraction
  5. Personality — custom system prompt for the assistant

After setup, start the assistant:

cogitator up

Editing an Existing Config

Re-run the wizard with --edit to modify an existing cogitator.yml:

cogitator wizard --edit

This loads the current config and lets you change individual sections.

Generated Files

cogitator.yml

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

.env
GOOGLE_API_KEY=your-api-key
TG_TOKEN=your-telegram-bot-token

Programmatic 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

FieldTypeDefaultDescription
namestringrequiredAssistant name
personalitystringrequiredSystem prompt / personality
llm.providergoogle | openai | anthropic | ollamarequiredLLM provider
llm.modelstringrequiredModel identifier (e.g. google/gemini-2.5-flash)
channelsobject{}Channel configs (telegram, discord, slack)
capabilitiesobject{}Enabled capabilities
memory.adaptersqlite | postgressqliteMemory storage backend
memory.knowledgeGraphbooleantrueEnable knowledge graph
memory.autoExtractbooleantrueAuto-extract entities from conversations
stream.flushIntervalnumber600Stream flush interval (ms)
stream.minChunkSizenumber30Minimum chunk size before flushing
rateLimit.maxPerMinutenumber30Per-user rate limit

On this page