AI Terminal Plugin for Revolution EDA
Overview
The aiTerminal plugin provides an AI-powered terminal interface within Revolution EDA for modifying design JSON files using natural language commands. It integrates with multiple AI models (Claude, Gemini, Mistral, and Amazon Bedrock) to allow users to make changes to schematics, symbols, and layouts through conversational requests.
Features
- AI-Powered Design Modification: Use natural language to request changes to your designs
- Multiple AI Model Support: Claude, Gemini, Mistral, and Amazon Bedrock (with custom/fine-tuned model support)
- Secure API Key Management: Encrypted storage of API keys using Fernet symmetric encryption
- Backup and Undo: Automatic backups before modifications with easy undo functionality
- Integrated Terminal: Seamlessly integrated into the Revolution EDA editor window with resizable splitter
- Customizable AI Instructions: Configure per-model and per-project instruction files to tailor AI behavior
- License Management: Built-in license validation and status display
Installation
- Ensure the aiTerminal plugin is in the
plugins/directory of your Revolution EDA installation. - The plugin will be automatically discovered and loaded when Revolution EDA starts.
- A valid license is required to use the AI Terminal.
Usage
Opening the Terminal
Open the AI Terminal via Tools → AI Terminal or use the keyboard shortcut Ctrl+T. The terminal appears as a panel inside the editor window. It is available in the Schematic Editor, Symbol Editor, and Layout Editor.
Setting Up API Keys
Before using the AI features, you need to set your API key:
- Select your preferred model from the dropdown in the terminal title bar
- Type
setkeyand press Enter - Enter your API key when prompted
- The key will be encrypted and stored securely in
~/.reveda/api_keys.enc
For Bedrock, you will be prompted separately for AWS Access Key ID, Secret Access Key, and Region.
Basic Commands
help— Display available commandsread— Display the current design JSONundo— Revert the last AI modification and reload the designsetkey— Set or update the API key for the currently selected modellicense— Show license terms, status, and expirationmodel:<model-id-or-arn>— Set a custom Bedrock model ID or fine-tuned model ARN (Bedrock only)ai:<request>— Send a natural language request to the AI agent
Example Requests
ai:Add a 100fF capacitor between nodes A and Bai:Change the width of NMOS current mirror transistors to 1.0umai:Connect the output of inverter I1 to the input of NAND gate N1ai:Create a differential pair with matched transistors
Model Selection
Switch between AI models using the dropdown in the terminal title bar:
- Claude — Anthropic’s Claude model
- Gemini — Google’s Gemini model
- Mistral — Mistral AI (Mistral Large)
- Bedrock — Amazon Bedrock (Amazon Nova Pro by default, supports custom and fine-tuned model ARNs)
Customizing AI Instructions
The AI Terminal supports configurable instruction files that let you tailor AI behavior per model or per project.
Configuration
Create an ai_config.json in one of these locations:
~/.reveda/ai_config.json— user-wide configuration./ai_config.json— project-specific configuration (overrides user config)
Example configuration:
{
"instruction_paths": {
"base_dir": "~/.reveda/ai_instructions",
"claude": "claude.md",
"gemini": "gemini.md",
"mistral": "mistral.md",
"general": "general.md"
},
"fallback_instructions": {
"enabled": true,
"use_builtin": true
}
}
Instruction Files
Place markdown instruction files in the configured directory (default: ~/.reveda/ai_instructions/). Each model can have its own instruction file, plus a shared general.md that applies to all models. Built-in fallback instructions are used when external files are missing.
Security
- API keys are encrypted using Fernet symmetric encryption and stored in
~/.reveda/api_keys.enc - The encryption key is stored separately in
~/.reveda/key.enc - The plugin requires a valid license to operate; license validation runs inside compiled plugin code
License
Commercial — proprietary add-on to Revolution EDA. A valid license key is required.