Skip to content
Gaurav Gosain edited this page Oct 4, 2026 · 3 revisions

Put a short label on each URL, path, hash, address and number in a pane, then type the label to copy, paste or open the text.

Hints mode puts a short label on the useful text in the focused pane. Type a label to copy the text. It works like tmux-fingers and the kitty hints kitten. Hints mode can also put labels on all panes at once. See All panes.

Use it

  1. Press Ctrl+B F. The labels show and the rest of the pane dims. The mode pill in the dock shows HINTS, and the other end of the dock shows the keys.
  2. Type a label. TUIOS copies the text and closes hints mode.
Keys Does
A label, such as a or ls Copy the text
The label with Shift, such as A Copy the text and type it into the pane
The label with Ctrl, such as Ctrl+A Open a URL or a path
Backspace Remove the last letter you typed
? Close hints mode and show all of its keys in the help
Esc, or the leader key Close hints mode
q Close hints mode, when q is not a label letter
Ctrl+C, Ctrl+G Close hints mode, when c or g is not a label letter

The text nearest to the cursor gets the shortest label. The same text gets the same label each time it shows. A key that starts no label does nothing.

When c or g is a label letter, Ctrl+C and Ctrl+G open that label. g is in the default letters, so Ctrl+G opens the label g. Use Esc to close. The leader key always closes hints mode.

You can also open hints mode from the command palette. Search for hints.

Note

Caps Lock

A terminal that reports Caps Lock (the Kitty keyboard protocol) lets TUIOS read an upper case letter from Caps Lock as a plain label letter. In other terminals, turn Caps Lock off before you type a label.

Hints mode keeps all input from the pane while the labels show. TUIOS drops a paste, a key release and a mouse move over the pane. A click or the mouse wheel closes hints mode first and then works as usual. Hints mode also closes when its pane closes, when focus moves to a different pane, and when you change the workspace.

The copy uses the same path as a mouse copy. TUIOS writes the clipboard with OSC 52. On a local client, it also uses the system clipboard tool.

All panes

The hints_all_panes action puts labels on all panes that the workspace shows. This includes tiled panes, floating panes and the focused pane.

  • TUIOS gives no label to text that you cannot see. This includes a minimized pane, a pane behind a zoomed pane, a pane off the screen, and text under a different pane.
  • Each label is different on all panes.
  • The focused pane gets the shortest labels. The panes nearest to it get the next shortest labels.
  • The same text gets the same label on all panes. A path or a file:// URL gets one label for each pane, because each pane has its own folder.
  • A label copies the text from any pane.
  • Shift and a label types the text into the focused pane. The text can come from a different pane.
  • Ctrl and a label opens the text from the pane that shows it. TUIOS uses that pane's folder and machine.
  • Hints mode closes when one of these panes closes, moves or changes size.

The action has no default key. Run it from the command palette, or bind it:

[keybindings.prefix_mode]
hints_all_panes = ["A"]

To make Ctrl+B F put labels on all panes, set hints.all_panes:

[hints]
all_panes = true

What hints mode finds

Name Examples
url https://example.com/a, git@github.com:user/repo.git
path /etc/hosts, ./run.sh, ~/notes.md, main.go:12:5
diff The file in diff --git a/x b/x, --- a/x and modified: x
sha 149c8a8f, a full 40-character hash
ip 10.0.0.1, 10.0.0.0/8, 192.168.1.2:8080, fe80::1
uuid 550e8400-e29b-41d4-a716-446655440000
color #1e1e2e, #fa0
hex 0xdeadbeef
number Numbers of 4 digits or more
email ops@example.com
id pod/web-1, deployment.apps/web, pod names, sha256: digests

path and email accept letters in all scripts, with accents and combining marks. The other built-in patterns use only ASCII.

A URL ends at a space, a quote, a backtick or an angle bracket. A ) or a ] ends the URL when the URL did not open it. A pair that the URL opens stays in it, as in https://en.wikipedia.org/wiki/Go_(language). TUIOS removes .,;:!? from the end. So the markdown badge [![x](https://a.example/b.svg)](https://a.example/c) gives two URLs. The pointer uses the same rules to find a link. See Links.

A path that starts with / must not come directly after <, a letter, a digit or _. So </p> in HTML is not a path.

Hints mode reads only the text on the screen. If you scroll the pane back, it reads the lines you scrolled to. A URL that wraps onto the next row is one match. TUIOS joins two rows only when the terminal wrapped the text. A line that fills the row and then ends is not joined to the next line.

Open

Ctrl and a label opens the text:

  • A URL opens in your browser. A remote client (tuios ssh, the web client) copies the URL, because it cannot open a browser on your machine.
  • A path or a file:// URL opens in a new pane with $EDITOR. TUIOS removes a :line:col at the end. A relative path starts in the directory of the pane.
  • Other text is copied.

TUIOS opens a file only when the file is on this machine. In these cases, it copies the path and tells you why:

  • The pane runs on another machine.
  • The session runs on another machine (tuios attach to a host).
  • The client is remote (tuios ssh, the web client).
  • The pane runs ssh, autossh, mosh, et, telnet, tsh, kitten (for example kitten ssh), docker, kubectl or podman.
  • The shell reported a folder on another machine.
  • The path is relative and a program runs in front of the shell. TUIOS knows only the folder that the shell reported.
  • The path is relative and TUIOS does not know the folder of the pane.

TUIOS never gives the text to a shell. It gives the text to the opener as one argument. Only http, https, mailto, ftp and ftps URLs open. The opener is the same as for Ctrl+click on a link. See Links.

Settings

Put the settings in the [hints] table of config.toml:

[hints]
# Built-in patterns: "all", "none", or names such as "url,path,sha".
builtins = "all"
# More patterns, as Go regular expressions. A group named "match"
# sets the part that is copied.
patterns = ['JIRA-\d+', 'branch: (?P<match>\S+)']
# The letters of the labels, easiest first. Lowercase letters only.
alphabet = "asdfghjkl"
# Let Ctrl and a label open the text.
open = true
# How much the text around the labels dims, in percent (10 to 90).
dim = 60
# Put labels on all panes on the workspace, not only on the focused pane.
all_panes = false

Your own patterns come before the built-in patterns. When a pattern does not compile, TUIOS shows a warning when it reads the config, and hints mode skips that pattern.

hints.builtins, hints.alphabet, hints.open, hints.dim and hints.all_panes are also on the settings page (Selection tab) and work with tuios set-config. hints.patterns is a list, so you set it in the file.

Change the key

The action is hints in [keybindings.prefix_mode]. To use a different key, bind it:

[keybindings.prefix_mode]
hints = ["f"]

If your config already binds F in [keybindings.prefix_mode] to a different action, TUIOS keeps your binding and gives hints no key. tuios keybinds doctor tells you when this happens.

Related

Clone this wiki locally