Terraphim AI Assistant
Terraphim is a privacy-first AI assistant that works for you under your complete control and is fully deterministic.
🆕 v1.0.0 Minimal Release - NOW AVAILABLE!
Quick Install (works on Linux, macOS, Windows):
Option 1: Universal Installer (recommended)
# Single command installation with platform detection
|
# Install both agent and CLI tools
|
Option 2: Homebrew (macOS/Linux - recommended)
# Add Terraphim tap
# Install server
# Install TUI/REPL
Option 3: Cargo Install
Features:
- 🔍 Semantic knowledge graph search
- 🔗 Smart text linking (markdown/html/wiki)
- 💾 Offline-capable (embedded defaults)
- ⚡ Lightweight (15 MB RAM, 13 MB disk)
- 🚀 Fast (<200ms operations)
Learn more: v1.0.0 Release Notes | Cross-Platform Guide
You can use it as a local search engine, configured to search for different types of content on StackOverflow, GitHub, and the local filesystem using a predefined folder, which includes your Markdown files.
Terraphim operates on local infrastructure and works exclusively for the owner's benefit.
🎉 v1.0.0 Major Release
We're excited to announce Terraphim AI v1.0.0 with comprehensive multi-language support:
✨ New Packages Available
- 🦀 Rust:
terraphim_agent- Complete CLI and TUI interface via crates.io - 📦 Node.js:
@terraphim/autocomplete- Native npm package with autocomplete and knowledge graph - 🐍 Python:
terraphim-automata- High-performance text processing library via PyPI
🚀 Quick Installation
Universal Installer (Recommended)
# Single command installation for all platforms
|
Package Managers
# Homebrew (macOS/Linux - signed & notarized binaries)
# Rust CLI (interactive TUI)
# Node.js package (autocomplete + knowledge graph)
# Python library (high-performance text processing)
https://github.com/terraphim/terraphim-ai/assets/175809/59c74652-bab4-45b2-99aa-1c0c9b90196b
Why Terraphim?
There are growing concerns about the privacy of data and the sharing of individuals' data across an ever-growing list of services, some of which have questionable data ethics policies. 1,2,3,4
Individuals struggle to find relevant information in different knowledge repositories:
- Personal ones like Roam Research, Obsidian, Coda, and Notion.
- Team-focused ones like Jira, Confluence, and SharePoint.
- Public sources such as StackOverflow and GitHub.
Terraphim aims to bridge this gap by providing a privacy-first AI assistant that operates locally on the user's hardware, enabling seamless access to various knowledge repositories without compromising privacy. With Terraphim, users can efficiently search personal, team-focused, and public knowledge sources, ensuring that their data remains under their control at all times.
🚀 Getting Started
Option 1: Install from Package Managers (Recommended)
🦀 Rust CLI/TUI (Most Features)
📦 Node.js Package (Autocomplete + Knowledge Graph)
# or with Bun
🐍 Python Library (Text Processing)
Option 2: Development Setup
-
Clone the repository:
-
Set up development environment:
# Install Git hooks for code quality (optional but recommended) -
Start the backend server:
This starts an API endpoint for indexing and querying documents.
-
Run the frontend (choose one):
Web Frontend:
Desktop App (Tauri):
Terminal Interface (Agent):
# Build with all features (recommended) # Or run minimal version
(See the desktop README, TUI documentation, and development setup guide for more details.)
📚 Usage Examples
🦀 Rust CLI/TUI
# Interactive mode with full features
# Search commands
# Chat with AI
# Commands list
# Auto-update management
📦 Node.js Package
// Import the package
import * as autocomplete from '@terraphim/autocomplete';
// Build autocomplete index from JSON thesaurus
const thesaurus = ;
const indexBytes = autocomplete.;
// Search for terms
const results = autocomplete.;
console.log;
// Knowledge graph operations
const graphBytes = autocomplete.;
const isConnected = autocomplete.;
console.log;
🐍 Python Library
# Create thesaurus
=
# Build autocomplete index
=
# Search for terms
=
# Fuzzy search
=
🆕 v1.0.0 Features
🔍 Enhanced Search Capabilities
- Grep.app Integration: Search across 500,000+ GitHub repositories
- Advanced Filtering: Language, repository, and path-based filtering
- Semantic Search: Knowledge graph-powered semantic understanding
📊 Multi-Language Support
- Rust: Native performance with complete CLI/TUI interface
- Node.js: High-performance autocomplete with native bindings
- Python: Fast text processing and autocomplete algorithms
🤖 AI Integration
- MCP Server: Model Context Protocol for AI tool integration
- Claude Code Hooks: Automated development workflows
- Knowledge Graphs: Semantic relationship analysis and discovery
🔄 Auto-Update System
- Seamless Updates: Self-updating CLI using GitHub Releases
- Cross-Platform: Works on Linux, macOS, and Windows
- Smart Versioning: Intelligent version comparison and update detection
- Progress Tracking: Real-time download progress and status indicators
Terminal Agent Interface
Terraphim includes a comprehensive terminal agent that provides both interactive REPL functionality and CLI commands for advanced operations:
Key Features
- 🤖 AI Chat Integration: OpenRouter and Ollama support for intelligent conversations
- ⚡ Sub-2 Second VM Boot: Advanced VM optimization system with sub-500ms allocation
- 🖥️ Enhanced VM Management: Firecracker microVM pools with intelligent allocation
- 📝 Markdown Command System: Extensible commands defined in YAML frontmatter
- 🔒 Security-First Execution: Three execution modes (Local, Firecracker, Hybrid) with knowledge graph validation
- 🌐 Web Operations: Secure web requests through VM sandboxing
- 📁 File Operations: Semantic file analysis and intelligent content management
- 🔍 Knowledge Graph: Interactive rolegraph visualization and navigation
- ⚙️ Configuration: Real-time role and configuration management
- 🔄 Auto-Update: Seamless self-updating mechanism using GitHub Releases
🔄 Auto-Update System
Terraphim-agent includes a built-in auto-update system that keeps your installation current with the latest releases from GitHub.
Features
- 🚀 Seamless Updates: Automatic binary replacement without manual intervention
- 📊 Progress Tracking: Real-time download progress and status indicators
- 🔒 Secure Verification: GitHub Releases integration ensures authenticated updates
- 🌐 Cross-Platform: Works on Linux, macOS, and Windows
- 📋 Version Intelligence: Smart version comparison and update availability detection
Usage
# Check for updates without installing
# Update to latest version if available
# Get help for update commands
Update Status Messages
- 🔍 Checking: "🔍 Checking for terraphim-agent updates..."
- ✅ Up-to-date: "✅ Already running latest version: X.Y.Z"
- 📦 Update Available: "📦 Update available: X.Y.Z → A.B.C"
- 🚀 Updated: "🚀 Updated from X.Y.Z to A.B.C"
- ❌ Failed: "❌ Update failed: [error details]"
Technical Details
- Source: GitHub Releases from
terraphim/terraphim-airepository - Mechanism: Rust
self_updatecrate with secure binary verification - Architecture: Async-safe implementation using
tokio::task::spawn_blocking - Compatibility: Requires internet connectivity for update checks
Example Workflow
Quick Start
# Build with all features
# Launch interactive REPL
# Available REPL commands:
For detailed documentation, see TUI Usage Guide and Auto-Update System.
Terminology
When configuring or working on Terraphim, you will encounter the following terms and concepts:
- Haystack: A data source that Terraphim can search through. For example, this could be a folder on your computer, a Notion workspace, or your email account.
- Knowledge Graph: A structured graph of information created from a haystack, where nodes represent entities and edges represent relationships between them.
- Profile: An endpoint for persisting user data (e.g. Amazon S3, sled, or rocksdb).
- Role: A role is a set of settings that define the default behavior of the AI assistant. For example, a developer role will search for code-related content, while a "father" role might search for parenting-related content. Each Terraphim role has its own separate knowledge graph that contains relevant concepts, with all synonyms.
- Rolegraph: A structure for ingesting documents into Terraphim. It is a knowledge graph that uses a scoring function (an Aho-Corasick automata build from the knowledge graph) for ranking results.
Why "Terraphim"?
The term is originally taken from the Relict series of science fiction novels by Vasiliy Golovachev. Terraphim is an artificial intelligence living inside a spacesuit (part of an exocortex), or inside your house or vehicle, and it is designed to help you with your tasks. You can carry it around with you. Similar entities now common in science fiction, for example Destiny 2 has entity called Ghost.
Or in Star Wars Jedi Survivor there is an AI assistant BD-1.
The compactness and mobility of such AI assistant drives the [[Design Decisions]] of Terraphim.
Terraphim is a trademark registered in the UK, US and internationally (WIPO). All other trademarks mentioned above are the property of their respective owners.
Configuration
Storage Backends
Terraphim supports multiple storage backends for different deployment scenarios:
Local Development (Default)
The system uses local storage backends by default, requiring no additional configuration:
- Memory: In-memory storage for testing
- DashMap: High-performance concurrent storage
- SQLite: Local database storage
- ReDB: Embedded key-value database
Cloud Storage (Optional)
For production deployments, you can optionally enable cloud storage:
AWS S3 Configuration
To use AWS S3 storage, set the following environment variables:
Note: AWS credentials are completely optional. The system will automatically fall back to local storage if AWS credentials are not available, ensuring local development works without any cloud dependencies.
Environment Variables
TERRAPHIM_SETTINGS_PATH: Override the settings file pathTERRAPHIM_DATA_PATH: Set the data directory locationLOG_LEVEL: Set logging verbosity (debug, info, warn, error)
Installation Methods
For End Users
Homebrew (macOS/Linux)
This installs the server, terminal agent, and desktop app (macOS only).
Debian/Ubuntu
# Download from GitHub releases
Docker
Direct Download
Download pre-built binaries from GitHub Releases.
Development Setup
For development, see our comprehensive Development Setup Guide which covers:
- Code quality tools and pre-commit hooks
- Multiple installation options (no Python required!)
- IDE integration and troubleshooting
Claude Code Integration
Terraphim provides seamless integration with Claude Code through multiple approaches, enabling intelligent text replacement and codebase quality evaluation.
🔄 Text Replacement (Hooks & Skills)
Use Terraphim's knowledge graph capabilities to automatically replace text patterns in your development workflow:
Claude Code Hooks - Automatic, transparent replacements:
# Example: Automatically replace npm with bun
|
# Output: bun_install
Claude Skills - Context-aware, conversational assistance:
- Works across all Claude platforms
- Provides explanations and reasoning
- Progressive disclosure of functionality
Examples:
- Package manager enforcement (npm/yarn/pnpm → bun)
- Attribution replacement (Claude Code → Terraphim AI)
- Custom domain-specific replacements
📖 Complete Guide: examples/TERRAPHIM_CLAUDE_INTEGRATION.md
📊 Codebase Quality Evaluation
Evaluate whether AI agents (Claude Code, GitHub Copilot, autonomous agents) improve or deteriorate your codebase using deterministic, knowledge graph-based assessment:
Key Features:
- Deterministic: Aho-Corasick automata for consistent scoring
- Privacy-First: All evaluation runs locally
- Multi-Dimensional: Security, performance, quality perspectives
- CI/CD Ready: Automated quality gates with exit codes
Quick Start:
# Generates verdict:
# ✅ IMPROVEMENT: The AI agent improved the codebase quality.
# - Improved metrics: 3
# - Deteriorated metrics: 0
Evaluation Metrics:
- Clippy warnings, anti-patterns, TODO counts
- Knowledge graph density and semantic matches
- Test pass rates and code coverage
- Custom domain-specific patterns
Use Cases:
- Evaluate PRs from AI agents before merge
- Continuous quality monitoring in CI/CD pipelines
- Historical trend analysis across evaluations
- Multi-role evaluation (security + performance + quality)
📖 Complete Documentation: examples/codebase-evaluation/
Example GitHub Actions Integration:
- name: Baseline evaluation
run: ./scripts/baseline-evaluation.sh ${{ github.workspace }}
- name: Apply AI changes
run: # Your AI agent step
- name: Post-change evaluation
run: ./scripts/post-evaluation.sh ${{ github.workspace }}
- name: Generate verdict (fails on deterioration)
run: ./scripts/compare-evaluations.sh
Contributing
We welcome contributions! Here's how to get started:
-
Read our guides:
-
Set up your environment:
-
Code quality standards:
- All commits must follow Conventional Commits
- Rust code is automatically formatted with
cargo fmt - JavaScript/TypeScript uses Biome for linting and formatting
- No secrets or large files allowed in commits
-
Make your changes:
- Create a feature branch:
git checkout -b feat/your-feature - Make your changes with proper tests
- Commit with conventional format:
git commit -m "feat: add amazing feature" - Push and create a Pull Request
- Create a feature branch:
Dependency Management
Important: Some dependencies are pinned to specific versions to ensure compatibility:
wiremock = "0.6.4"- Version 0.6.5 uses unstable Rust features requiring nightly compilerschemars = "0.8.22"- Version 1.0+ introduces breaking API changesthiserror = "1.0.x"- Version 2.0+ requires code migration for breaking changes
These constraints are enforced in .github/dependabot.yml to prevent automatic updates that would break CI. Future upgrades require manual code migration work.
Contributors are awesome
License
This project is licensed under the Apache license.