{"slug": "get-tiny-agent-that-gets-things-from-your-computer", "title": "Get – tiny agent that gets things from your computer", "summary": "Developer Water-Run released 'get', an open-source command-line tool that uses a large language model to convert natural language queries into shell commands for retrieving information from a computer. The tool, licensed under AGPL-3.0, includes multiple security layers such as dangerous command blocking and optional manual confirmation to ensure read-only operations.", "body_md": "`get`\n\nis a compact command-line binary tool that calls a Large Language Model (LLM) via natural language to generate shell commands, then executes them on your device to retrieve any information you need.\n\n`get`\n\nis open-sourced under the `AGPL-3.0`\n\nlicense on [GitHub](https://github.com/Water-Run/get).\n\nUsage examples:\n\n```\nget \"IP address of this device\"\nget \"code structure in the current directory\"\nget \"latest get version at https://github.com/Water-Run/get\"\n```\n\nDownload from [GitHub Release](https://github.com/Water-Run/get/releases). Just run the installation script directly:\n\n```\npython get_ready.py\n```\n\nFollow the on-screen instructions. If an older installation is found, the installer asks whether to keep the existing configuration while replacing only the binary. Once done, run `get version`\n\nto verify the installation.\n\nBefore use, you must configure at least the LLM-related parameters. `get`\n\nis compatible with the OpenAI API specification. Use the following commands to configure:\n\n```\nget set model your-model-name\nget set url your-api-endpoint\nget set key your-api-key\n```\n\nAfter configuration, run `get isok`\n\nto verify.\n\nTo clear a configuration value, leave the value empty. For example, to clear the key:\n\n```\nget set key\n```\n\nUsage is straightforward:\n\n```\nget \"your question\"\n```\n\n`get`\n\nis designed to perform read-only operations only. Every generated command goes through multiple layers of security validation before execution (built-in dangerous command regex blocking, plus optional double-check and manual confirmation).\n\nInteger options accept `false`\n\nto disable the feature entirely (equivalent to 0).\n\n| Option | Description | Value Type | Default |\n|---|---|---|---|\n`key` |\nLLM API key | String | Empty |\n`url` |\nLLM API endpoint URL | String (URL) | `https://api.xiaomimimo.com/v1` |\n`model` |\nLLM model name | String | `mimo-v2.5-pro` |\n`manual-confirm` |\nRequire manual confirmation before execution | `true` / `false` |\n`false` |\n`double-check` |\nEnable secondary safety review of commands | `true` / `false` |\n`true` |\n`instance` |\nUse single-call fast mode | `true` / `false` |\n`false` |\n`timeout` |\nTimeout per API request | Positive integer (s) / `false` |\n`300` |\n`max-token` |\nMaximum token consumption per request | Positive integer / `false` |\n`20480` |\n`max-rounds` |\nMaximum loop rounds in agent mode | Positive integer / `false` |\n`3` |\n`command-pattern` |\nRegex pattern to block commands | Regex string | Built-in blocklist (omit value to restore; `\"\"` to disable) |\n`system-prompt` |\nCustom system prompt | String | Empty |\n`shell` |\nShell used to execute commands | String | Windows: `powershell` ; Linux: `bash` |\n`log` |\nLog each request and execution | `true` / `false` |\n`true` |\n`hide-process` |\nHide intermediate steps | `true` / `false` |\n`false` |\n`cache` |\nEnable response caching | `true` / `false` |\n`true` |\n`cache-expiry` |\nCache entry expiry in days | Positive integer (days) / `false` |\n`30` |\n`cache-max-entries` |\nMaximum number of cache entries to retain | Positive integer / `false` |\n`1000` |\n`cache-trigger-threshold` |\nNumber of prior executions required before cache decision | Positive integer / `false` |\n`1` |\n`log-max-entries` |\nMaximum number of log entries to retain | Positive integer / `false` |\n`1000` |\n`vivid` |\nEnable vivid output mode (semantic colors and progress spinners) | `true` / `false` |\n`true` |\n\nExamples of disabling integer options:\n\n```\nget set timeout false\nget set cache-expiry false\nget set log-max-entries false\n```\n\n`command-pattern`\n\nis matched against the command string before shell\nexpansion. Blocking a literal filename can be bypassed by globbing\n(for example, `cat *.txt`\n\n), so reliable policies should target command\nverbs (`cat`\n\n, `head`\n\n, `cp`\n\n, etc.) instead.\n\nThe following flags can override persistent configuration for a single query, placed after the query string:\n\n| Flag | Description |\n|---|---|\n`--no-cache` |\nBypass cache for this query |\n`--cache` |\nForce cache use for this query |\n`--manual-confirm` |\nRequire confirmation before execution |\n`--no-manual-confirm` |\nSkip confirmation prompt |\n`--double-check` |\nEnable secondary safety review |\n`--no-double-check` |\nSkip secondary safety review |\n`--instance` |\nFast single-call mode |\n`--no-instance` |\nMulti-round agent mode |\n`--hide-process` |\nHide intermediate process output |\n`--no-hide-process` |\nShow intermediate process output |\n`--vivid` |\nEnable vivid output mode |\n`--no-vivid` |\nUse plain text output mode |\n`--model <name>` |\nOverride the LLM model for this query |\n`--timeout <seconds>` |\nOverride the request timeout this query |\n\nExamples:\n\n```\nget \"disk usage\" --no-cache\nget \"list files\" --model mimo-v2.5-pro --vivid\n```\n\nThe `config`\n\ncommand is used to inspect the current configuration.\n\n```\nget config                # Show all current configuration\nget config --reset        # Reset all configuration to defaults\nget config --<option>     # Show the current value of a single option\n```\n\n`--<option>`\n\naccepts all option names from the `set`\n\ntable above. `get config --key`\n\nshows whether a key is configured. The stored value is encrypted and cannot be retrieved. Disabled integer options display `false`\n\n.\n\n```\nget config --command-pattern   # View active pattern (full regex when default)\nget set command-pattern        # Restore built-in default\nget set command-pattern \"\"     # Disable pattern filtering\n```\n\n`get`\n\nuses a deferred-decision caching mechanism. Queries are not cached on first execution. Cache strategy classification is triggered only after a query has been seen at least `cache-trigger-threshold`\n\ntimes (default `1`\n\n, which means classification on the second run), or when `--cache`\n\nis explicitly passed. During this decision step, `get`\n\nshows `checking whether to cache...`\n\nas progress text (when process output is not hidden). Five strategies are supported: `GLOBAL_COMMAND`\n\n(cache the command globally, re-execute on hit), `GLOBAL_RESULT`\n\n(cache the output globally, return directly), `CONTEXT_COMMAND`\n\n(cache the command for the current directory context, re-execute on hit), `CONTEXT_RESULT`\n\n(cache the output for the current directory context, return directly), or `NOCACHE`\n\n(do not cache).\n\nGlobal entries work across any working directory; context entries are tied to the directory where the query was originally executed.\n\nWhen `hide-process`\n\nis enabled, `get`\n\nsuppresses its own intermediate progress and warning text (including cache checks and model advisory warnings), and only prints the final result or required errors.\n\nWhen config `cache`\n\nis `false`\n\n, `get`\n\nemits a warning in normal process mode: `warning: cache is disabled in config; all cache logic is bypassed`\n\n.\n\n```\nget cache                       # Show cache status\nget cache --clean               # Clear all cache entries and seen records\nget cache --unset \"system version\"  # Remove cache entries matching the query\nget set cache false             # Disable caching (disables all cache logic)\n```\n\n`get`\n\nrecords each query execution to a local file. When the number of entries exceeds the `log-max-entries`\n\nlimit, the oldest entries are automatically removed.\n\n```\nget log              # Show log status\nget log --clean      # Clear all log entries\nget set log false    # Disable logging\nget get             # Show basic information about get (name, version, author, ...)\nget get --intro     # Show introduction\nget get --version   # Show version (equivalent to get version)\nget get --license   # Show license identifier\nget get --github    # Show GitHub link\nget isok            # Verify that the current configuration is usable\nget help            # Show usage help\n```\n\n**Config file**: Linux`~/.config/get/config.json`\n\n/ Windows`%APPDATA%/get/config.json`\n\n**API key**: Linux`~/.config/get/key`\n\n(permissions 0600) / Windows`%APPDATA%/get/key`\n\n(DPAPI encrypted)**Execution log**: Linux`~/.config/get/get.log`\n\n/ Windows`%APPDATA%/get/get.log`\n\n**Response cache**: Linux`~/.config/get/cache.json`\n\n/ Windows`%APPDATA%/get/cache.json`\n\n`0`\n\n: Completed successfully`1`\n\n: Configuration error, LLM communication failure, security check rejection, or general error`130`\n\n: Interrupted by Ctrl+C (SIGINT)`N`\n\n: When a generated command exits with a non-zero code, that exit code is passed through as`get`\n\n's exit code", "url": "https://wpnews.pro/news/get-tiny-agent-that-gets-things-from-your-computer", "canonical_source": "https://github.com/Water-Run/get", "published_at": "2026-06-18 02:45:14+00:00", "updated_at": "2026-06-18 03:23:51.056424+00:00", "lang": "en", "topics": ["ai-tools", "large-language-models", "developer-tools"], "entities": ["Water-Run", "GitHub", "OpenAI", "AGPL-3.0"], "alternates": {"html": "https://wpnews.pro/news/get-tiny-agent-that-gets-things-from-your-computer", "markdown": "https://wpnews.pro/news/get-tiny-agent-that-gets-things-from-your-computer.md", "text": "https://wpnews.pro/news/get-tiny-agent-that-gets-things-from-your-computer.txt", "jsonld": "https://wpnews.pro/news/get-tiny-agent-that-gets-things-from-your-computer.jsonld"}}