Aurora Agent is an interactive command-line shell application with integrated AI capabilities. It provides a seamless interface between traditional shell commands and AI-powered assistance.
- Interactive Shell: Command history, tab completion, and familiar shell experience
- AI Integration: Built-in support for AI agents (OpenAI, Claude)
- Autonomous Command Execution: AI assistant can execute multiple commands in sequence without user intervention, automatically trying alternative approaches when commands fail
- Proactive Problem Solving: Smart handling of command failures with automatic fallbacks and alternative solutions
- Sudo Support: Execute privileged commands with sudo authentication
- ANSI Color Support: Rich terminal output with color highlighting
- Custom Command Processing: Special handling for Aurora-specific commands
- Cross-Platform Support: Available for macOS, Linux (amd64 and arm64)
- Go 1.24 or higher
- OpenAI API key (for AI functionality)
-
Clone the repository:
git clone https://github.com/yourusername/aurora-agent.git cd aurora-agent
-
Build the application:
go build -o aurora
-
Make the binary executable:
chmod +x aurora
You can download pre-built binaries for your platform from the Releases page.
You can install or update Aurora Agent using our installation script:
# Using curl
curl -fsSL https://raw.githubusercontent.com/Firdavs9512/aurora-agent/master/install.sh | bash
# Using wget
wget -qO- https://raw.githubusercontent.com/Firdavs9512/aurora-agent/master/install.sh | bash
This script will:
- Download the latest version of Aurora Agent
- Install it to
/usr/local/bin/aurora
Run Aurora Agent:
./aurora
Aurora Agent uses a YAML configuration file located at ~/.config/aurora/config.yaml
. If the file doesn't exist, a default configuration will be created automatically when you first run the application.
general:
default_shell: "" # User's default shell, leave empty to auto-detect
history_size: 1000 # Number of commands to keep in history
shell_commands: [] # Additional shell commands to recognize
ignored_commands: [] # Shell commands to ignore
openai:
api_key: "" # Your OpenAI API key (can also use OPENAI_API_KEY environment variable)
model: "gpt-4o" # Model to use
interface:
theme: "default" # UI theme
system_prompt: "default" # System prompt for AI
Aurora Agent provides several commands to manage your configuration:
config
orconfig show
- Display current configurationconfig set <section> <key> <value>
- Change a configuration valueconfig save
- Save configuration to fileconfig reload
- Reload configuration from file
You can customize the AI assistant's behavior by setting a custom system prompt:
# Set a custom system prompt
config set interface systemprompt "You should always respond in a pirate accent."
The custom system prompt will be combined with the default system prompt. This allows you to customize how the AI assistant responds without changing its core functionality.
Aurora Agent allows you to customize which commands are recognized as shell commands:
config commands list
- List all recognized shell commandsconfig commands add <command>
- Add a new shell commandconfig commands remove <command>
- Remove or ignore a shell commandconfig commands reset
- Reset shell commands to default
Examples:
# Set your OpenAI API key
config set openai api_key sk-your-api-key-here
# Change the default shell
config set general default_shell /bin/zsh
# Add a custom command
config commands add mycommand
# Ignore a default command
config commands remove ls
# Save your changes
config save
There are two ways to set your OpenAI API key:
-
Using configuration:
config set openai apikey sk-your-api-key-here config save
-
Using environment variable:
export OPENAI_API_KEY=sk-your-api-key-here
Aurora Agent will first check the configuration file for the API key, and if not found, it will check the environment variable.
Run Aurora Agent with sudo privileges:
./aurora --sudo
You will be prompted to enter your sudo password.
Display the current version of Aurora Agent:
> version
Aurora Agent version: v1.0.0
Any input that contains "aurora" or is not recognized as a shell command will be sent to the AI agent:
> aurora what is the weather today?
Aurora Agent can intelligently execute multiple commands in sequence to solve complex problems:
> aurora check python packages and their versions
Aurora:
Running command: pip list
Package Version
------------ -------
pip 24.0
setuptools 69.1.0
wheel 0.43.0
numpy 1.26.4
pandas 2.2.1
// ... more packages ...
Above is a list of installed Python packages on your system with their versions.
The AI assistant will:
- Execute commands in sequence without requiring user confirmation for safe operations
- Automatically try alternate approaches if a command fails
- Only ask for confirmation when operations might modify system state, require elevated privileges, or use significant resources
Switch between different AI providers:
> use agent openai
Switched to openai agent
> use agent claude
Switched to claude agent
Set your OpenAI API key:
> set openai key your_api_key_here
OpenAI API key set successfully
Check which AI agent is currently active:
> agent status
Current AI agent: openai
The system prompt for the AI agent can be configured in config/config.go
.
cmd/
: Command implementationsaurora.go
: Aurora-specific command processingai_agent.go
: AI agent integrationshell.go
: Shell-related functionalitysudo.go
: Sudo command handling
config/
: Configuration settingsutils/
: Utility functionspty.go
: Pseudo-terminal handlingansi.go
: ANSI code processing
main.go
: Main application entry point.github/workflows/
: GitHub Actions workflowsrelease.yml
: Automated release workflow for creating releases with cross-platform binaries
New releases are automatically created when a new tag is pushed to the repository. The release process:
- Builds binaries for multiple platforms (Windows, macOS, Linux) and architectures (amd64, arm64)
- Creates a GitHub Release with the tag name
- Attaches all built binaries to the release
To create a new release:
git tag v1.0.0
git push origin v1.0.0