{"id":27966691,"url":"https://github.com/knowsuchagency/skeet","last_synced_at":"2025-05-07T20:55:57.524Z","repository":{"id":270824726,"uuid":"911568580","full_name":"knowsuchagency/skeet","owner":"knowsuchagency","description":"Skeet: The command-line AI copilot for power users","archived":false,"fork":false,"pushed_at":"2025-03-05T21:41:32.000Z","size":340,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-07T20:55:51.680Z","etag":null,"topics":["ai","cli","llms","python","terminal"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/skeet/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/knowsuchagency.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-03T10:22:13.000Z","updated_at":"2025-04-08T16:21:16.000Z","dependencies_parsed_at":"2025-03-05T22:27:38.685Z","dependency_job_id":"3be5b7ca-c8cf-4ca2-b068-ad2efa8b2a1c","html_url":"https://github.com/knowsuchagency/skeet","commit_stats":null,"previous_names":["knowsuchagency/broski","knowsuchagency/skeet"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knowsuchagency%2Fskeet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knowsuchagency%2Fskeet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knowsuchagency%2Fskeet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/knowsuchagency%2Fskeet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/knowsuchagency","download_url":"https://codeload.github.com/knowsuchagency/skeet/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252954375,"owners_count":21830902,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","cli","llms","python","terminal"],"created_at":"2025-05-07T20:55:57.022Z","updated_at":"2025-05-07T20:55:57.517Z","avatar_url":"https://github.com/knowsuchagency.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003ch3 align=\"center\"\u003e\n🎯 Skeet: A local-friendly command-line AI copilot for Power Users \n\u003c/h3\u003e \n\n![skeet](https://github.com/user-attachments/assets/e4253aa6-3069-47bf-a7be-7da5bcf79413)\n\n\n🔥 Think of _Skeet_ as [GitHub Copilot CLI](https://githubnext.com/projects/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.\n\n🎯 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.\n\n🤖 Built on [promptic](https://github.com/knowsuchagency/promptic) and powered by [uv](https://github.com/astral-sh/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.\n\n⭐ _Skeet_ supports any LLM provider available through [LiteLLM](https://docs.litellm.ai/docs/providers), including OpenAI, Anthropic, Azure, local models, and many more!\n\n\n## Installation\n\nThe recommended installation method is [uv](https://github.com/astral-sh/uv).\n\n```bash\nuv tool install skeet\n```\n\n## Examples\n\n```bash\n# Shell commands (default)\nskeet show me system information about this computer\nskeet what is using port 8000\nskeet \"what's size of my downloads folder?\"\n\n# Python scripts (using -p or --python flag)\nskeet --python convert all html files in the current directory to pdf\nskeet -p \"how many stars for https://github.com/knowsuchagency/promptic?\"\n```\n\n## Configuration\n\nSkeet can be configured using a YAML file at `~/.config/skeet/config.yaml`.\n\nYou 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.\n\nTo see the full list of available LLM models, see the [LiteLLM documentation](https://docs.litellm.ai/docs/providers). Simply use the appropriate model name as the value for the `model` key.\n\nThere aren't any keys that are required for a given namespace, but `model` and `api_key` are recommended.\n\n```yaml\ndefault: # Default namespace\n  model: \"gpt-4o\" # Default LLM model to use\n  api_key: \"sk-...\" # Your LLM API key\n  yolo: false # Automatically execute scripts and commands without asking for confirmation\n  attempts: 5 # Maximum number of execution attempts\n  verify: false # Whether to verify output with LLM\n  cleanup: false # Whether to clean up temporary files\n  synchronous: false # Whether to run in synchronous mode\n  python: false # Whether to use Python scripts instead of shell commands\n  litellm_kwargs: # Extra arguments to pass to LiteLLM\n\nopenai: # OpenAI-specific configuration\n  model: \"o1-mini\"\n  api_key: \"sk-...\"\n\nanthropic: # Anthropic-specific configuration\n  model: \"claude-3-5-sonnet-20240620\"\n  api_key: \"sk-...\"\n\ngoogle: # Google-specific configuration\n  model: \"openrouter/google/gemini-pro-1.5\"\n  api_key: \"sk-...\"\n\nollama: # Local Ollama configuration\n  model: \"ollama_chat/phi4\"\n```\n\nYou can specify which configuration to use with the `--namespace` or `-n` flag:\n\n```bash\nskeet -n anthropic \"what's the weather like?\"\nskeet --namespace ollama \"list files in the current directory\"\n```\n\nIf no namespace is specified, the `default` one will be used.\n\n\n## Features\n\n- ⚙️ Works with any LLM provider supported by [LiteLLM](https://docs.litellm.ai/docs/providers)\n- 🔄 Automatically alter commands and scripts based on the error output and retry\n- 💬 Natural language to shell command or Python script conversion\n- 🐍 Python script execution with automatic dependency management using `uv`\n- 💻 Rich terminal output with syntax highlighting\n\n## How it Works\n\n1. You provide natural language instructions\n2. Skeet sends these instructions to an LLM with a specialized prompt\n3. The LLM generates either:\n   - A shell command (default)\n   - A Python script (with --python flag)\n4. Skeet executes the command or script\n5. If the execution fails or doesn't achieve the goal, Skeet can retry with improvements based on the error output\n\n[![asciicast](https://asciinema.org/a/697092.svg)](https://asciinema.org/a/697092)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknowsuchagency%2Fskeet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fknowsuchagency%2Fskeet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknowsuchagency%2Fskeet/lists"}