Skip to main content

Describe what you want done in your terminal, and Skeet will use AI to make it happen.

Project description

🎯 Skeet: A local-friendly command-line AI copilot for Power Users

skeet

🔥 Think of Skeet as GitHub Copilot CLI on steroids. It won't just give up on the first try and works with almost any LLM provider, putting you in full control of your terminal.

🎯 Like a skilled marksman who keeps shooting until they hit their target, Skeet transforms your natural language instructions into precise shell commands or Python scripts, adapting and retrying automatically until the job is done.

🤖 Built on promptic and powered by uv, Skeet can execute Python scripts with access to third-party libraries—no virtual environments needed. When a command fails, Skeet analyzes the output and adjusts its approach, ensuring your goals are met.

Skeet supports any LLM provider available through LiteLLM, including OpenAI, Anthropic, Azure, local models, and many more!

Installation

The recommended installation method is uv.

uv tool install skeet

Examples

# Shell commands (default)
skeet show me system information about this computer
skeet what is using port 8000
skeet "what's size of my downloads folder?"

# Python scripts (using -p or --python flag)
skeet --python convert all html files in the current directory to pdf
skeet -p "how many stars for https://github.com/knowsuchagency/promptic?"

Configuration

Skeet can be configured using a YAML file at ~/.config/skeet/config.yaml.

You can support multiple LLM providers by adding a namespace to your config. You can define any namespaces you want, but you must have a default namespace.

To see the full list of available LLM models, see the LiteLLM documentation. Simply use the appropriate model name as the value for the model key.

There aren't any keys that are required for a given namespace, but model and api_key are recommended.

default: # Default namespace
  model: "gpt-4o" # Default LLM model to use
  api_key: "sk-..." # Your LLM API key
  yolo: false # Automatically execute scripts and commands without asking for confirmation
  attempts: 5 # Maximum number of execution attempts
  verify: false # Whether to verify output with LLM
  cleanup: false # Whether to clean up temporary files
  synchronous: false # Whether to run in synchronous mode
  python: false # Whether to use Python scripts instead of shell commands
  litellm_kwargs: # Extra arguments to pass to LiteLLM

openai: # OpenAI-specific configuration
  model: "o1-mini"
  api_key: "sk-..."

anthropic: # Anthropic-specific configuration
  model: "claude-3-5-sonnet-20240620"
  api_key: "sk-..."

google: # Google-specific configuration
  model: "openrouter/google/gemini-pro-1.5"
  api_key: "sk-..."

ollama: # Local Ollama configuration
  model: "ollama_chat/phi4"

You can specify which configuration to use with the --namespace or -n flag:

skeet -n anthropic "what's the weather like?"
skeet --namespace ollama "list files in the current directory"

If no namespace is specified, the default one will be used.

Features

  • ⚙️ Works with any LLM provider supported by LiteLLM
  • 🔄 Automatically alter commands and scripts based on the error output and retry
  • 💬 Natural language to shell command or Python script conversion
  • 🐍 Python script execution with automatic dependency management using uv
  • 💻 Rich terminal output with syntax highlighting

How it Works

  1. You provide natural language instructions
  2. Skeet sends these instructions to an LLM with a specialized prompt
  3. The LLM generates either:
    • A shell command (default)
    • A Python script (with --python flag)
  4. Skeet executes the command or script
  5. If the execution fails or doesn't achieve the goal, Skeet can retry with improvements based on the error output

asciicast

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skeet-2.2.7.tar.gz (12.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

skeet-2.2.7-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file skeet-2.2.7.tar.gz.

File metadata

  • Download URL: skeet-2.2.7.tar.gz
  • Upload date:
  • Size: 12.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.14

File hashes

Hashes for skeet-2.2.7.tar.gz
Algorithm Hash digest
SHA256 949f134eaee981908a964eb6ffe44a45c30bd24a37e1111160e224ee04961b0f
MD5 8c7712f6524308821d648cfbfda7d446
BLAKE2b-256 8231e17386c02ad4a74df8b854fb1f2cfa00b530b1adb428ca4cd55cb9c2b197

See more details on using hashes here.

File details

Details for the file skeet-2.2.7-py3-none-any.whl.

File metadata

  • Download URL: skeet-2.2.7-py3-none-any.whl
  • Upload date:
  • Size: 13.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.14

File hashes

Hashes for skeet-2.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 c237c4bc5942a6742f04a29005d13ab0240831bf2694a36ba7898f599595b258
MD5 226d09d5dfe3b63dd3e94624a0cb4060
BLAKE2b-256 281fbd05ed78e131bed851527fcf48653722717134c13b0d5b86d6398512236e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page