2025-04-09 09:36:10 +02:00
2025-04-09 09:34:15 +02:00
2025-04-09 09:34:15 +02:00
2025-04-09 09:34:15 +02:00
2025-04-09 09:34:15 +02:00
2025-04-09 09:34:15 +02:00
2025-04-09 09:34:15 +02:00
2025-04-09 09:34:15 +02:00
2025-04-09 09:34:15 +02:00
2025-04-09 09:34:15 +02:00
2025-04-09 09:34:15 +02:00
2025-04-09 09:34:15 +02:00
2025-04-09 09:36:10 +02:00
2025-04-09 09:34:15 +02:00
2025-04-09 09:34:15 +02:00
2025-04-09 09:34:15 +02:00

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.apikey with just the key
  • Add the key to the edison.yaml configuration 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.yaml with the streaming option
  • Disable streaming for a single command with the --no-streaming flag
  • Cancel a streaming command generation with Ctrl+C
  • Hide the "Generating command: " prefix with the show_generating_prefix: false option in edison.yaml

Command Modification

Edison allows you to modify commands in two ways:

  1. Modify the prompt: Change the natural language description to generate a new command
  2. 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 p to 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.

S
Description
No description provided
Readme MIT 85 KiB
Languages
Python 99.2%
Shell 0.8%