Termineer User Manual
Getting Started
Termineer is a self-directing AI coding engineer that operates from your terminal. To get started, you'll need to configure your API keys and understand the basic configuration options.
API Keys
Termineer supports multiple LLM providers. You'll need at least one API key to use the application.
ANTHROPIC_API_KEY
Required for using Claude models like 'claude-3-opus', 'claude-3-sonnet', and 'claude-3-haiku'. Get your API key from Anthropic
GOOGLE_API_KEY
Serves two purposes: (1) For web search functionality and (2) For using Google's Gemini models like 'gemini-1.5-pro'. Get your API key from Google Cloud
OPENROUTER_API_KEY
Required for accessing models through OpenRouter, which provides a unified API for various models including GPT-4o, Claude, and more. Get your API key from OpenRouter
Optional settings:
OPENROUTER_SITE_URL
- Your application's URL (for request ranking)OPENROUTER_SITE_NAME
- Your application's name (for request ranking)
DEEPSEEK_API_KEY
Required for using DeepSeek models like 'deepseek-chat' and 'deepseek-reasoner'. Get your API key from DeepSeek
Configuration Methods
.env File Support
Termineer supports loading configuration from .env files. Create a .env file in your project directory with your API keys:
ANTHROPIC_API_KEY=sk-ant-your-key-here
GOOGLE_API_KEY=your-google-key-here
Termineer checks the following locations for .env files:
- Current directory (./.env)
- The env subdirectory (./env/.env)
- Parent directory (../.env)
- Home directory (~/.env)
Environment Variables
You can also set these as environment variables directly:
export ANTHROPIC_API_KEY=sk-ant-your-key-here
export GOOGLE_API_KEY=your-google-key-here
Advanced Configuration
.termineer Directory
Termineer uses a special directory structure for project-specific configuration. You can create a .termineer
directory
in your project root to customize behavior.
Project Information
Create an info
file in the .termineer
directory with project information. This will be loaded automatically at the start of each agent conversation.
# Project information:
# My Awesome Project
This is a description of my project that Termineer will use to understand the context.
## Technologies
- Python 3.9
- Django
- PostgreSQL
## Architecture
The project follows a standard MVC architecture with:
- models/ - Database models and business logic
- views/ - Request handlers and response formatting
- templates/ - HTML templates for rendering
- static/ - CSS, JavaScript, and other static assets
## API Endpoints
- GET /api/users - List all users
- POST /api/users - Create a new user
- GET /api/users/:id - Get a specific user
The content should follow Markdown formatting guidelines. Termineer will automatically include your current working directory and prefix this information with "Project information:".
Automatic File Inclusion
Create an autoinclude
file in the .termineer
directory to automatically include files in your context. Each line is treated as a glob pattern:
# Include key configuration files
config/*.json
README.md
# Include important source files
src/main.rs
src/config.rs
# Include all API-related files
src/api/*.rs
# Comments start with #
# Empty lines are ignored
Files matching these patterns will be automatically loaded and added to the agent's context at startup. Binary files and certain extensions (.exe, .jpg, etc.) are automatically excluded. Use this feature to give your agent immediate access to important project files.
Model Context Protocol (MCP) - Experimental
MCP is an experimental feature that allows Termineer to interact with specialized tools and services through a protocol. This enables advanced functionalities beyond the built-in tools. Note: Termineer currently only supports standard input/output MCP servers.
Configuring MCP Servers
MCP servers are configured in one or both of these locations:
- Home directory:
~/.termineer/mcp/config.json
- Local project directory:
.termineer/config.json
Configurations from both locations are merged, with local settings taking precedence. This allows for system-wide defaults with project-specific overrides.
Example MCP configurations:
Home config (~/.termineer/mcp/config.json):
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Documents",
"/Users/username/Downloads"
],
"env": {
"NODE_ENV": "production",
"DEBUG": "mcp:*"
}
},
"openapi": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-openapi"
],
"env": {
"PORT": "9001"
}
}
}
}
Project-specific config (.termineer/config.json):
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"./project-files",
"/tmp/cache"
],
"env": {
"API_KEY": "project-specific-key"
}
},
"project-tool": {
"command": "./tools/my-custom-tool.js",
"args": ["--serve"],
"env": {
"PORT": "9002"
}
}
}
}
Resulting merged configuration:
When both configurations exist, they'll be merged as follows:
- "filesystem" from the project config overrides the home config (local takes precedence)
- "openapi" from the home config is preserved
- "project-tool" from the project config is added
Environment Variables: You can specify environment variables to be passed to MCP servers using the env
field.
This is useful for setting API keys, debug modes, or other configuration without exposing them in command arguments.
Tip: Use the .termineer/autoinclude
file (described in the Automatic File Inclusion section above) to include your MCP configuration files in the agent's context at startup. This can be helpful when working with custom MCP tools that require specific documentation or examples.
Command-Line Options
Termineer supports various command-line options to customize behavior:
Option | Description | Example |
---|---|---|
--model |
Specify the AI model to use | --model claude-3-haiku-20240307 |
--kind |
Specify the agent kind/template | --kind researcher |
--grammar |
Specify the grammar type (xml, markdown) | --grammar xml |
--no-tools |
Disable tools | --no-tools |
--thinking-budget |
Set thinking token budget | --thinking-budget 16384 |
Usage Examples
Interactive mode (recommended for most uses):
termineer
Single query mode with custom model:
termineer --model claude-3-haiku-20240307 "Analyze this log file for errors"
Specialized agent kind:
termineer --kind researcher "Find best practices for API security"
TUI Mode and Commands
Termineer provides a rich Terminal User Interface (TUI) in interactive mode with keyboard shortcuts, command history, and special commands.
Command Modes
Termineer offers special command modes triggered by prefix characters:
Slash Commands Mode
Type a slash (/) followed by a command to perform special actions:
Command | Description |
---|---|
/help |
Show available commands |
/exit or /quit |
Exit the application |
/interrupt |
Interrupt the current agent |
/model MODEL |
Set the model for the current agent (e.g., /model claude-3-haiku-20240307 ) |
/tools on|off |
Enable or disable tools |
/system TEXT |
Set the system prompt |
/reset |
Reset the conversation |
/thinking NUMBER |
Set thinking budget in tokens (e.g., /thinking 10000 ) |
Agent Selection Mode
Use the pound symbol (#) to switch between agents:
#ID
- Switch to agent with the specified ID (e.g.,#1
)#NAME
- Switch to agent by name (e.g.,#researcher
)
Interrupting Operations
Termineer provides a multi-level interrupt system:
- Ctrl+C - Interrupt the current operation (tool execution or agent processing)
- Ctrl+C (pressed twice within 3 seconds) - Exit the application
- /interrupt - Command to explicitly interrupt the current agent