ShellOracle  by djcopley

CLI tool for intelligent shell command generation

created 1 year ago
297 stars

Top 90.4% on sourcepulse

GitHubView on GitHub
Project Summary

ShellOracle is a terminal utility that generates shell commands from natural language descriptions, aiming to boost command-line efficiency for developers and power users. It supports integration with various LLM providers, including Ollama, OpenAI, and Deepseek, allowing for self-hosted or cloud-based command generation.

How It Works

ShellOracle functions as a shell widget, typically activated by CTRL+F. Users describe their desired command, and the tool leverages configured LLM providers to generate and insert the corresponding shell command into the prompt. It supports Unix piping for chaining commands and maintains command history for easy reference.

Quick Start & Requirements

  • Install via pipx install shelloracle.
  • Configuration is done via shor config init.
  • Supported shells: BASH, ZSH, fish on macOS and Linux.
  • LLM Provider Setup: Requires API keys for cloud providers (OpenAI, Deepseek, Google, XAI) or local model setup (Ollama, LocalAI). Refer to provider-specific documentation.

Highlighted Details

  • Seamless integration with BASH, ZSH, and fish shells via keyboard shortcuts.
  • Supports multiple LLM backends: Ollama, OpenAI, Deepseek, LocalAI, XAI, Google.
  • Command history and Unix pipe support for advanced workflows.
  • Self-hosted option for enhanced data privacy and control.

Maintenance & Community

  • Project actively seeks feedback and contributions via GitHub issues and pull requests.
  • No explicit mention of maintainers, sponsorships, or community channels like Discord/Slack in the README.

Licensing & Compatibility

  • Licensed under GPLv3.
  • GPLv3 is a strong copyleft license, requiring derivative works to also be open-sourced under GPLv3. This may impose restrictions on integration with closed-source commercial applications.

Limitations & Caveats

The project is primarily designed as a shell widget, and running it as a standalone Python module or entrypoint (shor) will not automatically insert commands into the shell prompt. Compatibility with shells other than BASH, ZSH, and fish is not specified.

Health Check
Last commit

3 months ago

Responsiveness

1 day

Pull Requests (30d)
1
Issues (30d)
0
Star History
29 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.