{"id":29685534,"url":"https://github.com/uberkael/dspick","last_synced_at":"2026-04-17T10:07:38.323Z","repository":{"id":303349650,"uuid":"1015175053","full_name":"uberkael/dspick","owner":"uberkael","description":"AI Shell Completions:  Like Navi, but with DSPy under the hood. Ask, Get a CLI command, Done.","archived":false,"fork":false,"pushed_at":"2025-07-24T10:11:28.000Z","size":5811,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-04T13:51:04.127Z","etag":null,"topics":["agent","cheatsheets","dspy","llms","python","shell"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/uberkael.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-07T05:48:47.000Z","updated_at":"2025-08-30T00:15:48.000Z","dependencies_parsed_at":"2025-07-07T06:39:25.292Z","dependency_job_id":"7f48a524-9365-403d-aa75-415dc244a931","html_url":"https://github.com/uberkael/dspick","commit_stats":null,"previous_names":["uberkael/dspyck"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/uberkael/dspick","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uberkael%2Fdspick","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uberkael%2Fdspick/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uberkael%2Fdspick/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uberkael%2Fdspick/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uberkael","download_url":"https://codeload.github.com/uberkael/dspick/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uberkael%2Fdspick/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31924408,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T09:10:15.403Z","status":"ssl_error","status_checked_at":"2026-04-17T09:10:14.455Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["agent","cheatsheets","dspy","llms","python","shell"],"created_at":"2025-07-23T04:01:02.548Z","updated_at":"2026-04-17T10:07:38.305Z","avatar_url":"https://github.com/uberkael.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DsPick\n\nAI Shell Completions:\n\nLike Navi, but with DSPy under the hood.\\\nAsk, Get a CLI command, Done.\n\nGenerates CLI commands from natural language descriptions.\n\n- Can generate multiple commands in sequence.\n\n- It's context-aware, considering previous commands in the pipeline.\n\n- Provides multilingual support depending on the LLM use.\n\n- Compatible with major providers like OpenAI, Gemini, Anthropic, and Ollama.\n\n- Includes an optimizer to refine accuracy.\n\n- Rate limits to manage API quotas.\n\n- Configurable via interactive tool or config file.\n\n\n## Usage\n\nDescribe the desired action and press the shortcut (default `ctrl+e`).\n\nDemo:\n![demo](screens/demo.apng)\n\nMultiple command completion:\\\n(in the example `sum numbers`→`paste -sd+ | bc`)\n![multiple](screens/multiple.apng)\n\nLanguage support:\\\n(Depending on the LLM)\n![language](screens/language.apng)\n\nSometimes it fails:\\\n(`$9` instead of `$11` or `$NF`)\n![fail](screens/not_perfect.apng)\n\n## Installation\n\nPermissions:\n```bash\nchmod +x dspick\n```\n\n(Maybe) Add to path\n```\nln -s \"$(pwd)/dspick\" ~/bin/\n# or .local/bin\nln -s \"$(pwd)/dspick\" ~.local/bin/\n```\n\n\nLoad `dspick` in your shell.\n\n##### bash:\n\nLoad\n```bash\nsource $(dspick bash)\n# or in the same directory\nsource dspick.bash\n```\n\nOr add to .bashrc\n\n```bash\nif [ -x \"$(command -v dspick)\" ]; then\n\tsource \"$(dspick zsh)\"\nfi\n```\n\n##### zsh:\n\nLoad\n```shell\nsource $(dspick zsh)\n# or in the same directory\nsource dspick.zsh\n```\n\nOr add to .zshrc\n\n```bash\nif [ -x \"$(command -v dspick)\" ]; then\n\tsource \"$(dspick zsh)\"\nfi\n```\n\n##### fish:\n\nLoad\n```shell\nsource $(dspick fish)\n# or in the same directory\nsource dspick.fish\n```\n\n#### API Keys\n\nCreate a `.env` file with your LLM provider API Keys.\\\n(Not required if using Ollama.)\n\n```shell\nANTHROPIC_API_KEY=xxxxxx\nGOOGLE_API_KEY=xxxxxx\nGROQ_API_KEY=xxxxxx\nMISTRAL_API_KEY=xxxxxx\nOPENAI_API_KEY=xxxxxx\n...\n```\n\n## Configuration\n\nManual: `config.toml`\\\nOr execute the config tool:\n\n```bash\ndspick config\n```\n![config](screens/config.png)\n\nModels:\n![models](screens/models.png)\n\nOptions:\n\n- **Cache**: LLM responses will be cached.\n- **Throttling**: Enable limit `request per minute` to avoid LLM Quotas.\n\n## Optimizer\n\nThe optimizer tool improves result accuracy by generating an optimized.pkl file.\\\nThis file is **automatically used if present**.\n\nDSPy can refine prompts and examples to improve LLM responses. The optimization method may vary depending on the LLM being used.\n\n- **Resumable Process**:  Can be restarted if interrupted and some steps completed successfully.\n\n- **Throttling**: Handles rate limits efficiently (see Throttling).\n\n\nTo run the optimizer:\n```shell\ndspick optimize\n```\n\n##### Training (with rate limit):\n\n![models](screens/training.png)\n\n##### Accuracy improvements (gemini-2.5-flash-lite-preview-06-17):\n\n![models](screens/optimizer.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuberkael%2Fdspick","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuberkael%2Fdspick","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuberkael%2Fdspick/lists"}