Skip to content

SmartTerminal: AI-Powered Terminal Commands (MacOS, Linux, Windows)

License

Notifications You must be signed in to change notification settings

muralianand12345/Smart-Terminal

Repository files navigation

Smart Terminal

Python Version License Version

Smart Terminal (st) is a powerful command-line interface that converts natural language instructions into executable terminal commands using AI. Say goodbye to forgetting command syntax or searching through documentation - just describe what you want to do in plain English.

πŸš€ Features

  • Natural Language Processing: Convert plain English to terminal commands
  • Multi-step Tasks: Handle complex operations with sequential commands
  • Multiple AI Providers: Support for OpenAI, Groq, and Anthropic
  • Cross-platform Support: Works across macOS, Linux, and Windows with dedicated shell adapters
  • Interactive Mode: Continuous command generation for complex workflows
  • Command History: Context-aware interactions for better suggestions
  • Admin Privilege Handling: Proper sudo/admin permission management
  • Customizable: Configure AI providers and other settings
  • Dry Run Mode: Preview commands without execution
  • JSON Output: Format results as JSON for scripting and automation

⚑ Quick Installation

pip install smart-terminal-cli

πŸ“– Usage

Basic Command Conversion

st "create a folder called projects and create a python file inside it"

This will generate and execute the appropriate commands to create the folder and file.

Interactive Mode

st -i

Start an interactive session where you can continuously issue natural language commands.

Setup and Configuration

st --setup

Configure API keys, default settings, and other options.

Dry Run Mode

st --dry-run "create a file with the current date as filename"

Preview commands that would be executed without actually running them.

JSON Output

st --json "find all python files in the current directory"

Output results in JSON format for scripting and automation.

Other Commands

# Clear command history
st --clear-history

# Enable debug logging
st --debug

# View version information
st --version

# Set up shell integration
st --shell-setup

# Show configuration information
st --config-info

πŸ“‹ Examples

Here are some examples of what you can do with Smart Terminal:

# File and directory operations
st "find all PDF files in the current directory and move them to a new folder called documents"

# System information
st "show me system information including CPU and memory usage"

# Package management
st "install numpy, pandas, and matplotlib for my python project"

# Git operations
st "initialize a git repository, add all files, and make an initial commit"

# Network operations
st "scan open ports on localhost"

πŸ”§ Configuration

Smart Terminal stores its configuration in ~/.smartterminal/config.json. You can modify this file directly or use the setup command:

st --setup

Key configuration options:

  • API Key: Your AI service API key
  • Base URL: API endpoint URL
  • Model Name: AI model to use for command generation
  • Provider: AI provider to use (openai, groq, anthropic)
  • Default OS: Target operating system for commands
  • History Limit: Number of previous commands to retain
  • Shell Integration: Enable/disable shell integration for environment-changing commands

Shell Integration

Smart Terminal can modify your shell environment (changing directories, setting environment variables) when you enable shell integration:

st --shell-setup

This adds a function to your shell configuration file that allows Smart Terminal to affect your shell environment.

πŸ› οΈ Development

Prerequisites

  • Python 3.10 or higher
  • Poetry (for dependency management)

Setting up development environment

# Clone the repository
git clone https://github.com/muralianand12345/Smart-Terminal.git
cd Smart-Terminal

# Install dependencies using Poetry
poetry install

# Activate the virtual environment
poetry shell

Running tests

pytest

Building from source

poetry build

πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgements

  • OpenAI, Groq, and Anthropic for providing the AI capabilities
  • All contributors and testers

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Created by Murali Anand