Show HN: Namo_complete: a non-obtrusive AI autocomplete for the bash terminal Namo Robotics released Namo_complete, a Linux-only AI autocomplete tool for the Bash terminal that suggests commands via dim hints and a 'did you mean' feature, using Anthropic's Claude Haiku 4-5 model by default. The tool, written in the Sun programming language, requires an ANTHROPIC_API_KEY and can be installed via a curl script, with options to customize model, history, and output settings. A non-obstrusive AI autocomplete for your Bash terminal, written in Sun https://namo-robotics.github.io/sun/ Linux-only until Sun can target MacOS Type as usual. A moment after you pause, a dim hint appears on the row below your line with the command you are most likely looking for. Press Alt-O to accept the hint, which puts it in your line where you can edit it before pressing Enter. If you mistype a command, the command not found line comes with a did you mean hint. Press Alt-G to enter ask mode where you can describe the command that you want in plain english. | Key | Action | |---|---| Alt-O | Accept the hint | Alt-A | List the other candidates, pick one by number | Alt-G | Describe what you want in plain English, pick from described options | curl -fsSL https://raw.githubusercontent.com/namo-robotics/namo complete/main/install.sh | bash Then open a new terminall. You will also need to set the ANTHROPIC API KEY env var. export ANTHROPIC API KEY=sk-ant-... The install script downloads a release artifact and unpacks two files to ~/.local/bin/namo complete and ~/.local/share/namo complete.bash . It then adds a line to your ~/.bashrc so new shells source the namo complete.bash script. Options: | Option | Env var | Effect | |---|---|---| --version vX.Y.Z | NAMO VERSION | Install a particular release; dev takes the latest build of main . Default: latest stable, or dev if there is none | --prefix DIR | NAMO PREFIX | Install root. Default ~/.local | --no-bashrc | — | Skip the ~/.bashrc edit; add the source line yourself | rm -f ~/.local/bin/namo complete rm -rf ~/.local/share/namo complete ~/.cache/namo complete sed -i '/ namo complete/,+1d' ~/.bashrc drops the marker and the source line | Sent | Default | Disable | |---|---|---| | The partial command line | always | — | | A command bash could not find | always | NAMO DYM=0 | | What the last command printed | last 10 lines | NAMO OUTPUT=0 | | Current directory path | always | — | | Filenames in that directory | 40 | NAMO NO LS=1 | | Recent shell history | 50 commands | NAMO HISTORY LINES=0 | | Everything | NAMO DISABLE=1 | Any history line or captured output line that contains something shaped like an API key sk- , ghp , github pat , AKIA , xoxb- , xoxp- is thrown away before the request is built. That is the whole check: it catches a key you pasted at a prompt, not a secret that looks like anything else. If you handle sensitive material in this shell, set NAMO HISTORY LINES=0 and it sends no history at all. | Variable | Default | Meaning | |---|---|---| ANTHROPIC API KEY | — | Required | NAMO MODEL | claude-haiku-4-5 | Any Claude model | NAMO BIN | namo complete | Binary path, if not on PATH | NAMO KEY / NAMO ALT KEY / NAMO ASK KEY | \eo / \ea / \eg | The three keys, written the way bash's bind writes them | NAMO DEBOUNCE / NAMO QUIET | 0.2 / 0.05 | Seconds of not typing before a request; how long a burst of typing is left to settle | NAMO HINT MIN | 3 | Minimum characters before hinting | NAMO HINT PREFIX | hint: | Text in front of the hint row | NAMO TIMEOUT | 10 | Seconds before giving up | NAMO DYM / NAMO DYM PREFIX | 1 / did you mean: | "did you mean" after command not found, and the text in front of it | NAMO OUTPUT | 10 | Lines of the last command's output to send; 0 keeps none hints still work | NAMO HISTORY LINES | 50 | History commands sent; 0 disables | NAMO LS LIMIT / NAMO NO LS | 40 / 0 | Directory listing | NAMO MAX SUGGESTIONS | 3 | Candidates requested | NAMO CACHE / NAMO CACHE TTL | 1 / 900 | Local cache | NAMO DISABLE | 0 | 1 turns everything off | NAMO ENDPOINT | Messages API | Override, for testing | Answers are cached in ~/.cache/namo complete , looked up by what you had typed, which directory you were in, and which model answered. Deleting that directory is safe at any time. Three processes and one program file. Bash owns the line you are typing, because its own line editor is the only thing that can; the rest belongs to two background helpers, both of them the same binary started in a different mode: the daemon — lives as long as your shell, and does all the thinking: waiting for you to pause, looking in the cache, calling the API, drawing the hint row. the output relay — holds a stand-in terminal a pseudo-terminal, or pty: a pair of endpoints that looks exactly like a real terminal to anything writing into it . The shell's output goes there instead of straight to your screen, and the relay passes every byte through to the real terminal. On the way past it keeps the last few lines your commands printed — that is what it is named for — and reads the line you are typing. The two helpers and the shell talk over named pipes — files you write bytes into at one end and read at the other. flowchart LR BASH "bash