Command help while you type
Added in 1.6.1.
Type a command into a session and the app works out what you are running, then offers the documentation for it beside the terminal. Not over it — the panel opens where the buttons and the assistant already live, and the session carries on behind it.
There is nothing to install and nothing to configure. You do not need a
tldr client on the machine, and none of this runs on a remote host.
It reads the command, not the first word
Taking the first word finds sudo every time, on exactly the commands
someone needs help with. So wrappers are stepped over, including their own options and
the values those options take.
| You type | It looks up |
|---|---|
tcpdump -i eth0 port 5060 | tcpdump |
sudo -u root tcpdump -i eth0 | tcpdump |
sudo systemctl restart nginx | systemctl |
env FOO=bar curl https://example.com | curl |
watch -n 5 kubectl get pods | kubectl |
grep foo /var/log/messages | tail -20 | grep, and it notices tail |
/usr/bin/tcpdump -D | tcpdump |
A session is a real terminal, not a text box with a send button, so the line is reconstructed from what you type. History recall and tab completion change the line in ways nothing outside the shell can see; when that happens the app knows it has lost track and stops guessing rather than showing you the wrong page.
It stops watching at a password prompt
A password typed at a prompt is keystrokes like any other. When the far end asks for
one — [sudo] password for…, Enter passphrase for key… — nothing
is captured at all until the prompt has gone. Nothing typed there is held, shown, or
sent anywhere.
The example is a builder
Documentation writes rsync {{path/to/source}} {{path/to/destination}}.
Every other client renders that literally and leaves you to retype it with the braces
taken out. Here each one becomes a field, and the command underneath is what will
actually be sent.
Fields start pre-filled from the example, because the examples are usually real —
{{eth0}} is a working default. A token that only describes a
value, like {{path/to/file}}, is pre-filled too but flagged
needs a real value, and Run stays disabled until you replace
it. Copy and Insert do not, because neither of them runs anything.
The original template stays on screen next to the built command, so it is always clear what was substituted where.
Four buttons
- Copy — the built command to the clipboard.
- Insert — puts it on the terminal's command line and stops there. Read it, edit it, press Enter yourself. This is the one to reach for.
- Run — sends it to the session named at the top of the panel.
- Ask AI — hands the built command to the assistant, which explains the options, the risks and what output to expect. It carries the command you built, not the unresolved template, and never your terminal history.
It knows what it is talking to
Pages are organised by platform, and a Linux page shown at a PowerShell prompt is worse than no page at all — it looks authoritative. The platform comes from the connection you already set up.
| Connection | Pages you get |
|---|---|
| SSH | Linux, then common |
Tagged cisco | Cisco IOS, then common |
| Local shell: PowerShell or cmd | Windows, then common |
| Local shell: WSL | Linux, then common |
| Local shell on a Mac | macOS, then common |
| Serial | Common only — nothing is assumed about a console cable |
Tagging a connection
cisco is what turns show into the switch page. Cisco IOS
deliberately does not fall through to Linux: show,
write and reload all exist there and mean something else
entirely.
Nothing runs by accident
This is documentation, not a safety review. It describes
rm -rf as cheerfully as it describes ls. So the command you
built is checked before it can be sent, and anything that looks destructive becomes
Review & Run:
You are about to run:
rm -rf /some/path
On:
server-prod-02 — admin@10.0.4.12:22
This removes files, and removes files recursively or without prompting.
[ Cancel ] [ Run Command ]
That check is a speed bump, not a barrier — it is a pattern list, and you can type anything you like into the terminal regardless. The point is that a command you half-read in a documentation panel gets a second look before it is sent.
It goes to the session you opened it for
A command goes to the session named at the top of the panel — the one that was in front when you opened the page — and to no other. That is the whole reason the target is written there. If you switch terminals while the panel is open it says so and offers a button to retarget; it never quietly follows focus, and it never broadcasts. If the target disconnects, Insert and Run go grey and say why. Copy and Ask AI keep working.
Searching, when you have not typed anything
Ctrl+Shift+T opens a search over all ~7,400 pages. It searches command names, descriptions and the example text, which is the useful part — someone who already knows the command name rarely needs to look it up.
tcpdump— the obvious case.restart service— findssystemctland friends.find large files,capture traffic,docker containers.dkr— fuzzy, findsdocker.
Pick a result and it opens in the same panel, builder and all. Star a command and it is waiting there next time you open the search.
Offline, and when it is not there
The page set downloads once, in the background, well after start-up — never between a keystroke and a lookup. After that it works with no network at all, and refreshes itself about weekly. No failure here can delay the app starting or stop a terminal working: if it cannot download, it says so and everything else behaves exactly as before.
Not everything is documented, and vendor CLIs are thin — there are seventeen Cisco IOS pages, not seventeen hundred. When there is no page, the panel says so and offers you the search and Ask AI, which has no such gap.
Settings → tldr shows what is cached — version, page count, platforms, size on disk, where it lives — with Update now, Rebuild index and Clear cache. Detection can be turned off there entirely; the panel and the search still work when you open them deliberately.
Command documentation comes from the tldr-pages project and is used under CC BY 4.0. Smartcom Revisited ships the integration, not the data — the pages are fetched from that project's own release archive and are not modified.