Percept
Three modules that turn VEKTOR into an ambient intelligence layer — surfacing what you were working on, processing files you drop into an inbox, and running interactive thinking sessions with full memory access. Shipped in v1.5.8.
Percept Chat Layer
A session intelligence layer that plugs into the VEKTOR REPL (vektor-percept-chat.js). Instead of passively waiting for queries, it watches what you type and surfaces related memory at natural pause points — like a colleague who quietly tracks context without interrupting.
Capabilities
| Feature | Description |
|---|---|
| Morning Handover | On startup, surfaces yesterday’s active topic thread, where you left off, and any new web signals relevant to that thread. |
| Progressive Idea Surfacing | Accumulates a topic buffer as you type. At natural pause points surfaces 1–3 related memories as soft hints that deepen if the topic sustains. |
| Step Tracker | Detects multi-step tasks (code, research, trademark filing) and shows current step inline with auto-saved progress. |
| Idea Expansion | Three depth levels earned by engagement: Whisper, Bloom, Anchor. Fades gracefully when topic shifts. |
| Web Signal Surfacing | If a new percept signal matches the active topic, surfaces it as a quiet inline link without interrupting flow. |
Depth Levels
Depth is earned by engagement — never triggered automatically. The system only goes deeper when you go deeper.
| Level | Name | Output |
|---|---|---|
| 1 | Whisper | Single concept word, barely visible. First hint that a memory is near. |
| 2 | Bloom | Short phrase, one connection. Surfaces when topic sustains across turns. |
| 3 | Anchor | Synthesised insight, held until topic shifts. Only reached with deep engagement. |
Usage (in vektor-repl.js)
const PerceptChat = require('./vektor-percept-chat'); const pc = new PerceptChat(mem, cfg, llmCall); await pc.morningHandover(); // call after banner() pc.onInput(userText); // call on every line input const hint = await pc.getHint(); // call after each LLM reply if (hint) process.stderr.write(hint + ' ');
Design Principles
Percept Inbox Daemon
Background daemon (vektor-percept.js) that watches ~/.vektor/inbox/ for dropped files and auto-processes them into MAGMA memory without any user action. Drop a file, walk away — it handles extraction, synthesis, and storage.
Supported Formats
| Extension | Handling |
|---|---|
| .txt .md | Plain text and Markdown notes — full synthesis pipeline. |
| .json | Structured memory arrays or note objects — direct ingestion. |
| .transcript | Meeting or voice transcripts — chunked and summarised. |
| .log | Log files — chunked at 3,000 chars, each chunk summarised independently. |
Processing Pipeline
Per file: detect type → extract text → LLM synthesis (title, summary, entities, decisions, actions, tags) → store structured note + memory fragments in MAGMA → move to done/. Failed files move to error/ with a processing receipt alongside each file.
Drop Zones
~/.vektor/inbox/ # drop files here ~/.vektor/inbox/done/ # processed files moved here ~/.vektor/inbox/error/ # failed files moved here ~/.vektor/inbox/percept.log # processing log
Commands
vektor percept # start daemon (blocks) vektor percept --once # process inbox once then exit vektor percept --dir <path> # watch custom directory vektor percept --no-llm # heuristic extraction only, no LLM cost vektor percept status # show inbox stats
Configuration
// ~/.vektor/config.json { "percept-provider": "groq", // groq | ollama | openai | claude "percept-session-model": "llama-3.3-70b-versatile", "percept-fast-model": "llama-3.1-8b-instant" }
Percept Worker CLI
Standalone thinking-loop CLI (percept.js) for interactive session-based memory work. Provider-agnostic across 14 providers. Separate fast model for worker and distillation passes, session model for conversation. Full MAGMA memory access throughout.
Supported Providers
Groq, Ollama, OpenAI, Claude, Mistral, Together AI, OpenRouter, Cohere, xAI / Grok, DeepSeek, LM Studio, MiniMax, NVIDIA NIM, Perplexity.
In-session Commands
/insights [days] # briefing of last N days (default 7) /recall <query> # search memory directly /remember <text> # store a memory manually /status # show memory DB health
Configuration
// ~/.vektor/config.json { "percept-provider": "groq", "percept-session-model": "llama-3.3-70b-versatile", "percept-fast-model": "llama-3.1-8b-instant", "ollama-host": "http://localhost:11434", "ollama-model": "llama3.2" }
Environment Overrides
PERCEPT_PROVIDER=claude ANTHROPIC_API_KEY=sk-... GROQ_API_KEY=gsk_... OPENAI_API_KEY=sk-...