Harvey User Manual
Harvey is a tool for scholarly work via natural language programming. It provides an interactive REPL backed by a local language model system — running via llamafile or Ollama — where you direct the model to read files, run commands, search code, and apply changes inside a sandboxed workspace. Individual prompts can be routed to cloud providers via named routes. Language model systems are commonly called “AI models” or “AI”; Harvey treats them as a programmable interface for deliberate, documented work rather than a chat assistant.
🚀 Quick Start Guide
For users who want to get Harvey running immediately
1. Installation
INSTALL.md — Step-by-step instructions to install Harvey on Linux, macOS, or Windows
2. First Session
getting_started.md — Launch Harvey, connect to a local model, and run your first commands
3. System Prompt Customization
HARVEY.md — The default system prompt and how to customize it for your project
📚 Core User Guide
For daily Harvey usage
Working with Harvey
- Overview — What Harvey is, its philosophy, and core features
- Configuration —
Workspace configuration in
agents/harvey.yaml, including permissions, timeouts, and memory settings
Commands and Workflows
- Command Reference — Primary man page with all available commands and flags
- Getting Started — Detailed session walkthrough, keyboard shortcuts, and slash commands
Command vocabulary
Every Harvey resource command responds to the same eight verbs:
| Verb | Meaning |
|---|---|
list |
Enumerate all registered items |
add |
Register an existing external resource (file, URL) |
new |
Create a fresh internal item (database, skill, plan) |
use [NAME] |
Activate an item; picker when NAME is omitted |
show [NAME] |
Display item content or details |
edit [NAME] |
Open in $EDITOR |
remove [NAME] |
Delete or unregister; picker when NAME is omitted |
rename OLD NEW |
Rename |
Backend service commands additionally support start,
stop, and status (connection health — distinct
from show which displays content).
The add vs new distinction:
add registers something you already have; new
creates something Harvey manages from scratch.
Learning this vocabulary for one command teaches you all the others:
/llamafile, /rag, /route,
/session, /skill, /skill-set, and
/memory profile all follow the same pattern.
🎯 Advanced Features
Retrieval-Augmented Generation
- RAG Setup & Usage — Complete guide to retrieval-augmented generation, including named stores, ingest commands, and configuration
- RAG Commands — Detailed reference for all RAG-related slash commands
Knowledge Management
- Knowledge Base — SQLite-backed knowledge base schema, FTS5 search, CLI commands, and Go API
- KB Commands —
/kbslash command reference: projects, observations, concepts - Memory System — Unified memory architecture with rolling summaries and token budget tracking
- Memory Commands
—
/memoryslash command reference: mine, list, show, flag, forget, profile - Learn — Memory Overview — When to use RAG vs memory vs KB; unified recall
Model Management
- Llamafile Commands — Primary local backend: add, use, show, list, start, download, remove
- Unified /model
Command —
/model list|use|show|statusworks across llamafile and Ollama - Model & Alias
Commands —
@mentioninline model switching and/model aliasshort names - Ollama Commands — Alternative local backend: service control and model management
- Routing — Connect to remote endpoints (Anthropic, DeepSeek, Gemini, Mistral, OpenAI, remote Ollama) via @mention syntax
- Routing
Commands —
/routeslash command reference - Model Guide — Model selection guide based on capability probing results
- Model Cache — Model capability caching architecture, database schema, and probing mechanisms
Sessions & Recording
- Sessions — Session recording, file structure, replay functionality, and programmatic access
- Session
Commands —
/session list|show|use|continue|replayreference - Record Commands
—
/record start|stop|statusreference - Fountain Format — Fountain screenplay format specification for conversation recordings
File & Workspace Operations
- Read — Inject workspace files into conversation context
- Read Directory — Read all files in a directory tree into context
- Read PDF — Extract and inject PDF text (requires poppler)
- Attach — Attach images, PDFs, or text; auto-selects best representation
- Write — Save the last reply or first code block to a file
- Format — Auto-format source files using language-appropriate tools
- Search — Regex search across workspace files
- Files — List workspace directory contents
- File Tree — Display a recursive directory tree
Automation & Pipelines
- Pipeline — Chain Markdown prompt files with confidence gating
- Plan — Generate and execute step-by-step task plans with bounded context
- Loop — Repeat a prompt or command on a fixed interval
Status & Diagnostics
- Status — Show backend, token usage, routing, recording, and debug state
- Hint — Actionable suggestions for improving results (RAG, memory, KB)
- Inspect — Detailed model information (Ollama)
- Summarize —
Condense history to free context window space (
/compactalias)
🔧 Extending Harvey
Skills System
- Skills Overview — Extend Harvey with custom skills, including SKILL.md format, discovery paths, compiled skills, triggers, and the skill wizard
- Skills Commands
—
/skillslash command reference - Skill Sets — Manage named bundles of skills for specific workflows
Security
- Security Guide — Safe mode, command allowlists, workspace permissions, audit logging, and threat model
- Security
Commands —
/safemode,/permissions,/audit,/securityreference - Security Review — Pre-release security assessment and known limitations
📖 What’s New
- See CHANGES.md for version history and new features in each release
🔍 Can’t Find What You Need?
- Use
/helpinside Harvey for a live command list - Use
/help <command>for specific command help - See Developer Guide for development and contribution information
- See Reference for complete command and configuration reference