Edison - AI Command Assistant
Overview
Edison is an AI-powered command-line assistant that helps you interact with your terminal more efficiently. Just describe what you want to do in natural language, and Edison will generate and execute the appropriate command.
Edison v0.2
Usage: edison [options] <your command description>
Arguments:
-s, --safety : Enable safety mode (only useful when safety is off)
-c, --config : Print current configuration
-v, --verbose : Enable verbose logging
-i, --interactive : Start interactive shell mode
-e, --explain : Explain the generated command
--no-streaming : Disable streaming output for command generation
--no-rich : Disable rich text formatting
--theme <theme> : Set syntax highlighting theme (e.g., monokai, github-dark)
Current configuration per edison.yaml:
* Model : gpt-4o-mini
* Temperature : 0
* Max. Tokens : 500
* Safety : on
* Streaming : on
* Show Prefix : off
UI Configuration:
* Rich Formatting : on
* Theme : monokai
* Command Style : panel
* Structured Expl.: on
Features
- Natural language processing for command generation
- Support for GPT-3.5 and GPT-4 models
- Real-time streaming of command generation
- Rich text formatting with syntax highlighting
- Structured command explanations
- Direct command modification (edit commands before execution)
- Configurable settings via
edison.yaml - Cross-platform support (Linux, macOS, Windows)
- Safety mode to confirm commands before execution
- Interactive shell mode with command history
Installation
Linux and macOS
git clone https://github.com/user/command-assistant
cd command-assistant
source install_edison.sh
Windows
git clone https://github.com/user/command-assistant
cd command-assistant
.\install_edison.bat
OpenAI API Key Configuration
Configure your OpenAI API key using one of these methods:
- Environment variable:
export OPENAI_API_KEY=<yourkey>(Linux/macOS) or$env:OPENAI_API_KEY="<yourkey>"(Windows) - Create a file at
~/.openai.apikeywith just the key - Add the key to the
edison.yamlconfiguration file
Usage Examples
edison what's the time?
edison show me some unicode characters
edison what is my username and machine name?
edison is there a process called chrome running?
edison download the homepage of example.com and save it to index.html
edison find all unique URLs in index.html
edison create a file named test.txt with my username
edison -a delete the test.txt file
edison show me the current price of Bitcoin in USD
edison check the SSH logs for suspicious logins
Safety Mode
By default, Edison will prompt for confirmation before executing commands. You can configure this behavior in edison.yaml.
Streaming Mode
Edison displays command generation in real-time as tokens arrive from the API, providing immediate feedback. You can:
- Enable/disable streaming in
edison.yamlwith thestreamingoption - Disable streaming for a single command with the
--no-streamingflag - Cancel a streaming command generation with Ctrl+C
- Hide the "Generating command: " prefix with the
show_generating_prefix: falseoption inedison.yaml
Command Modification
Edison allows you to modify commands in two ways:
- Modify the prompt: Change the natural language description to generate a new command
- Modify the command directly: Edit the generated command before execution
When you select the "modify" option (by typing m), Edison will ask whether you want to modify the prompt or the command:
Execute command? [Y]es [n]o [m]odify (prompt/command) [c]opy to clipboard ==> m
Modify [p]rompt or [c]ommand? [c] ==>
- Choose
pto modify the prompt and generate a new command - Choose
c(default) to directly edit the generated command
Rich Formatting
Edison provides enhanced terminal output with rich text formatting:
- Syntax highlighting for generated commands
- Structured command explanations with better formatting
- Customizable themes for syntax highlighting
- Panel-based UI elements for better visual organization
You can configure rich formatting options in edison.yaml under the ui section:
ui:
rich_formatting: true
theme: "monokai"
command_style: "panel"
structured_explanations: true
Or disable rich formatting for a single command with the --no-rich flag.
License
MIT. No Liability. No Warranty.
