{"id":26050879,"url":"https://github.com/GitToby/howto-ai","last_synced_at":"2025-03-08T03:01:24.205Z","repository":{"id":264198221,"uuid":"892663645","full_name":"GitToby/howto-ai","owner":"GitToby","description":"Dont know the right command? Just ask howto!","archived":false,"fork":false,"pushed_at":"2025-02-14T10:00:14.000Z","size":323,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-14T10:38:15.974Z","etag":null,"topics":["ai","cli"],"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/GitToby.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}},"created_at":"2024-11-22T14:38:49.000Z","updated_at":"2025-02-14T10:00:18.000Z","dependencies_parsed_at":"2024-11-22T15:41:09.674Z","dependency_job_id":"55c35eb1-a21d-4a4b-b393-3d27a2dc4167","html_url":"https://github.com/GitToby/howto-ai","commit_stats":null,"previous_names":["gittoby/howto-ai"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GitToby%2Fhowto-ai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GitToby%2Fhowto-ai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GitToby%2Fhowto-ai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GitToby%2Fhowto-ai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GitToby","download_url":"https://codeload.github.com/GitToby/howto-ai/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242492132,"owners_count":20137577,"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"],"created_at":"2025-03-08T03:01:22.187Z","updated_at":"2025-03-08T03:01:24.182Z","avatar_url":"https://github.com/GitToby.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n \u003cpicture\u003e\n  \u003cimg alt=\"howto logo\" src=\"https://github.com/GitToby/howto-ai/raw/main/docs/assets/logo.png\"\u003e\n\u003c/picture\u003e\n\u003c/p\u003e\n\n---\n\nDont know how to do something in your terminal?\n\n```\nhowto print my system information\n```\n\nAnd you'll be told!\n\n```\n╭────────────────────────────────────────────────────────────────────────────────╮\n│ You can use the `uname -o` command to display your operating system.           │\n│                                                                                │\n│                                                                                │\n│  uname -o                                                                      │\n│                                                                                │\n│                                                                                │\n│ This command works with various Unix-like systems, including Linux and macOS.  │\n│ If you're running a 64-bit kernel on an Apple M1 or ARM-based hardware, it     │\n│ will return \"Darwin\" (the underlying OS name for macOS).                       │\n╰────────────────────────────────────────────────────────────────────────────────╯\n```\n\n# Installing\n\n`howto` is available on pypi and can be installed in any manner of ways\n\n```shell\npip install howto-ai\n```\n\n```shell\npipx install howto-ai\n```\n\n```shell\nuvx --from howto-ai howto\n```\n\n📦 homebrew and other packages coming soon 📦 \n\n# Usage\n\n```shell\nλ: howto --help\n\n Usage: howto [OPTIONS] [QUERY]...\n\n╭─ Arguments ────────────────────────────────────────────────────────────────────╮\n│   query      [QUERY]...  This is what you'd like to ask as a question. Empty   │\n│                          queries will open a prompt.                           │\n│                          [default: None]                                       │\n╰────────────────────────────────────────────────────────────────────────────────╯\n╭─ Options ──────────────────────────────────────────────────────────────────────╮\n│ --debug                 --no-debug            Make no requests to llms         │\n│                                               [default: no-debug]              │\n│ --dry-run               --no-dry-run          Make no requests to llms         │\n│                                               [default: no-dry-run]            │\n│ --config-path           --no-config-path      Print the default config path    │\n│                                               and exit.                        │\n│                                               [default: no-config-path]        │\n│ --config-show           --no-config-show      Print the config and exit.       │\n│                                               [default: no-config-show]        │\n│ --install-completion                          Install completion for the       │\n│                                               current shell.                   │\n│ --show-completion                             Show completion for the current  │\n│                                               shell, to copy it or customize   │\n│                                               the installation.                │\n│ --help                                        Show this message and exit.      │\n╰────────────────────────────────────────────────────────────────────────────────╯\n```\n\n# Backends\n\n`howto` uses 3rd party services as backends. By default, It's configured to use [ollama](https://ollama.com/) which is\nexpected to be running locally (make sure you read their docs). If it is, your `howto` commands will work.\n\n`howto` can also be used against popular local, private and public AI APIs including ChatGPT, Gemini and others. To\nconfigure this, you need to edit the config file or use the commands below. Locating the config file can be done with:\n\n```shell\nhowto --config-path\n```\n\nEdit this in your favourite text editor. If this is difficult, please open an Issue and we can help.\n\n## General Directions\n\nSet the model you want by using the `--set-model` flag or updating the config file at `.config/howto-ai/config.toml`. We use [liteLLM](https://docs.litellm.ai/docs/providers) for their adapter service, so any supported model will work.\n\n```shell\nhowto --set-model '\u003cprovider\u003e/\u003cmodel\u003e'\n```\nor\n```toml\nmodel = \"\u003cprovider\u003e/\u003cmodel\u003e\"\n# for example\nmodel = \"huggingface/facebook/blenderbot-400M-distill\" # https://huggingface.co/facebook/blenderbot-400M-distill\n# ...\n```\n\nHere are some examples of popular providers and their models:\n### Ollama\n\n\n```shell\nhowto --set-model='ollama/deepseek-r1:32b'\nhowto --set-model='ollama/llamla3:8b'\n```\n\n### Open AI\n\n```shell\nhowto --set-model 'gpt-4o-mini' # https://platform.openai.com/docs/models\nhowto --set-model 'gpt-4o'\n...\n```\nthen export your `OPENAI_API_KEY` for that session (in your .envrc or .bashrc or wherever)\n\n```shell\nexport OPENAI_API_KEY=\"\u003cyour key here\u003e\" # https://platform.openai.com/api-keys\n```\n\n### Hugging Face\n\n```shell\nhowto --set-model 'huggingface/Qwen/Qwen2.5-Coder-32B-Instruct' # https://huggingface.co/Qwen/Qwen2.5-Coder-32B-Instruct\nhowto --set-model 'huggingface/facebook/blenderbot-400M-distill'  # https://huggingface.co/facebook/blenderbot-400M-distill\n...\n```\nthen export your `HUGGINGFACE_API_KEY` for that session (in your .envrc or .bashrc or wherever)\n\n```shell\nexport HUGGINGFACE_API_KEY=\"\u003cyour key here\u003e\" # https://huggingface.co/docs/hub/security-tokens\n```\n\nand you should be good to go\n\n### Anthropic\n\n```shell\nhowto --set-model 'claude-3-opus-latest' # https://docs.anthropic.com/en/docs/about-claude/models\nhowto --set-model 'claude-3-5-sonnet-latest'\nhowto --set-model 'claude-3-5-haiku-latest'\n...\n```\n\nthen export your `ANTHROPIC_API_KEY` for that session (in your .envrc or .bashrc or wherever)\n\n```shell\nexport ANTHROPIC_API_KEY=\"\u003cyour key here\u003e\" \n```\n\nand you should be good to go\n\n\u003e **Remember** AI can produce rubbish code, remember to research the commands `howto` spits out\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGitToby%2Fhowto-ai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGitToby%2Fhowto-ai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGitToby%2Fhowto-ai/lists"}