{"id":50808610,"url":"https://github.com/pokatomnik/asq","last_synced_at":"2026-06-13T03:06:01.226Z","repository":{"id":358704760,"uuid":"1241592631","full_name":"pokatomnik/asq","owner":"pokatomnik","description":"Ask LLM a question with selected prompt","archived":false,"fork":false,"pushed_at":"2026-06-10T14:22:16.000Z","size":278,"stargazers_count":2,"open_issues_count":4,"forks_count":0,"subscribers_count":0,"default_branch":"dungeon-master","last_synced_at":"2026-06-10T16:09:08.579Z","etag":null,"topics":["deepseek","gemini","llm","llm-inference","llm-tools","nvidia-ai","ollama","openapi","openrouter","rust","rust-lang"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pokatomnik.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-17T15:26:35.000Z","updated_at":"2026-06-10T14:25:58.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/pokatomnik/asq","commit_stats":null,"previous_names":["pokatomnik/asq"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/pokatomnik/asq","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pokatomnik%2Fasq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pokatomnik%2Fasq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pokatomnik%2Fasq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pokatomnik%2Fasq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pokatomnik","download_url":"https://codeload.github.com/pokatomnik/asq/tar.gz/refs/heads/dungeon-master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pokatomnik%2Fasq/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34270418,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-13T02:00:06.617Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["deepseek","gemini","llm","llm-inference","llm-tools","nvidia-ai","ollama","openapi","openrouter","rust","rust-lang"],"created_at":"2026-06-13T03:05:47.051Z","updated_at":"2026-06-13T03:06:01.221Z","avatar_url":"https://github.com/pokatomnik.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 asq - Quick LLM Asker\n\n[![Rust](https://github.com/pokatomnik/asq/actions/workflows/rust.yml/badge.svg)](https://github.com/pokatomnik/asq/actions/workflows/rust.yml)\n\n## 🤷 What is this?\n\n**asq** is a blazingly fast CLI tool to ask questions to Large Language Models (LLMs) right from your terminal.  \nIt's like having ChatGPT in your command line – but cooler, because it's written in Rust 🦀.\n\n## 🎯 What is this project for?\n\n- Get quick answers from LLMs without leaving the terminal.\n- Manage multiple LLM providers (OpenAI, Gemini, DeepSeek, NVidia, any OpenAI-compatible endpoint).\n- Use **smart prompts** with built-in pipe operators like `input`, `file`, `lowercase` to fetch data, edit text, pick files, and more.\n- Keep your conversations with **chat history** and **long-term memory** (yes, it remembers stuff!). Just ask your LLM to remember something and It will.\n- Perfect for developers who want to integrate LLM queries into scripts or workflows.\n\n## 🛠️ Tech Stack\n\n| Technology             | Description                                                                |\n| ---------------------- | -------------------------------------------------------------------------- |\n| **Rust** 🦀            | Systems programming language, compiled for speed                           |\n| **clap**               | CLI argument parsing with derive macros                                    |\n| **reqwest**            | HTTP client for talking to LLM APIs (blocking + socks proxy support)       |\n| **dialoguer**          | Interactive CLI prompts (fuzzy select, input, editor, password)            |\n| **dom_smoothie**       | Extracts readable content from HTML (useful for web article summarization) |\n| **serde / serde_json** | JSON serialization for config and API responses                            |\n| **spinners**           | Show a spinner while waiting for the LLM to respond                        |\n| **urlencoding**        | URL encoding for queries                                                   |\n| **ignore**             | File walking with gitignore patterns                                       |\n| **marcli**             | Render Markdown output in terminal                                         |\n\n## 📖 Usage\n\n### First time setup\n\n```bash\nasq onboard\n```\n\nThis will ask you for:\n\n- LLM providers you want to add (OpenAI, DeepSeek, Gemini, etc.)\n- Your API token (stored as an environment variable via config)\n- A path to your prompts directory\n\n### Ask a question\n\n```bash\nasq\n```\n\nWithout any subcommand, `asq` will:\n\n1. Let you select a provider (or use the last one)\n2. Open a file picker to choose a **prompt template** (`.md` file)\n3. Fill in any prompts via input, file contents, fetch URLs, etc.\n4. Send the prompt to the LLM and show the answer\n\n### Continue a conversation\n\n```bash\nasq -c\n# or\nasq --continue\n```\n\nKeeps the previous chat history, so you can ask follow-up questions.\n\n### Change output mode\n\n```bash\nasq -o plain   # Just plain text\nasq -o markdown  # Rendered Markdown (default)\n```\n\n### Manage providers\n\n```bash\nasq providers list\nasq providers add\nasq providers delete\n```\n\n### Manage long-term memory\n\n```bash\nasq memories list\nasq memories add\nasq memories delete\n```\n\n### List available operators\n\n```bash\nasq operators list\n```\n\n### Manage skills\n\n- **List** installed skills:\n\n```bash\nasq skills list\n```\n\n- **Install** a new skill from a URL:\n\n```bash\nasq skills install --name skill_name https://skill-url.com/skill/SKILL.md\n```\n\n- **Delete** an existing skill (interactive selection):\n\n```bash\nasq skills delete\n```\n\n### Prompt template syntax\n\nUse `{{ ... }}` to embed dynamic content or pipe operators:\n\n```markdown\nHere are the project files:\n{{ \"Select files\" | file_picker }}\nNow, please explain the architecture.\n\nAlso, check this URL: {{ \"https://example.com\" | fetch | htm2text }}\n```\n\nAvailable operators: `input`, `editor`, `file`, `fetch`, `lowercase`, `select`, `multiselect`, `password`, `file_picker`, `htm2text`, `now`.\n\n## Shell completions\n\n`asq` can generate shell completion scripts for supported shells.  \nTo enable completions, add the following line to your shell startup file:\n\n```sh\nsource \u003c(asq completions -s SHELL)\n```\n\nReplace SHELL with one of the supported shells:\n\n- `bash`\n- `zsh`\n- `fish`\n- `elvish`\n- `powershell`\n\n### Examples:\n\n#### Bash:\n\nAdd this line to `~/.bashrc`:\n\n```sh\nsource \u003c(asq completions -s bash)\n```\n\n#### Zsh\n\nAdd this line to `~/.zshrc`:\n\n```sh\nsource \u003c(asq completions -s zsh)\n```\n\n#### Fish\n\nAdd this line to your Fish config file, usually ~/.config/fish/config.fish:\n\n```sh\nsource (asq completions -s fish | psub)\n```\n\n#### Elvish\n\nAdd this line to your Elvish config file, usually ~/.config/elvish/rc.elv:\n\n```sh\neval (asq completions -s elvish | slurp)\n```\n\n#### PowerShell\n\nAdd the generated script to your PowerShell profile:\n\n```sh\nasq completions -s powershell | Out-String | Invoke-Expression\n```\n\nYou can place this command in your PowerShell profile file so that completions are loaded automatically in every session.\n\n## 📄 License\n\nThis project is licensed under the **MIT License**.\nFeel free to use, modify, and share it – just don't blame us if your AI goes rogue 🤖.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpokatomnik%2Fasq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpokatomnik%2Fasq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpokatomnik%2Fasq/lists"}