Skip to content

Completion ​

Type / or $ at the prompt, and a list above it offers ways to finish the word. Take one with tab and keep typing.

At a glance

  • You will find a command or a flow without remembering its exact name, and see what a command takes before you send it.
  • Use it when you are not sure what you can do right now, or which flows this directory can run.
  • You need hmz open. Nothing else: completion is on from the start.

Try it ​

text
❯ /
❯ /s        then tab: /settings
❯ $ra       then tab: $ralph_loop
hmz
hmz: typing / lists every command that works now with what it takes; /s narrows it to /settings; tab takes it; /afk shows what it takes; $ lists the flows, $lo narrows them to the project's own, and tab finishes the name

How it works ​

The prompt watches the word under the cursor. When that word starts with / or $, a list opens between the transcript and the prompt, and narrows as you type. Each row is one way to finish the word: a command with what it takes and what it is for, or a flow by the name you would run it under.

The list is built from what can happen now. A command that would do nothing in the state the run is in is left out, and the list changes the moment that state does, even while it is open. So the list is also a quick answer to "what can I do here?".

Example: find a command, then read what it takes ​

With no flow running, type /:

hmz · the list / opensdrawn, not recorded
  /afk [on|off]      Toggle whether an agent may ask you1
  /btw [question]    Ask side questions; press esc or /btw to stop
  /clear             Clear the screen
  /epics             View and manage epics here, or of another daemon
  /exit              Exit
  /flow [flow]       Switch flow
  /resume            Resume the last epic in this directory2
  /settings [page]   Every setting: general, notifications, daemons, accounts, fallback, runtimes, backup, workspace
────────────────────────────────────────────────────────────
❯ /
────────────────────────────────────────────────────────────
◉ ralph_loop · ~/tmp/humanize-demo        ↑↓ move · tab select · esc cancel3

Now type s, press tab, delete back to /, and type afk:

hmz · a complete commanddrawn, not recorded
  /afk [on|off]      Toggle whether an agent may ask you4
────────────────────────────────────────────────────────────
❯ /afk
────────────────────────────────────────────────────────────
◉ ralph_loop · ~/tmp/humanize-demo   enter run · / commands · shift+enter newline · ctrl+c clear5

What to look at, by number:

  1. What a command takes. [on|off] after /afk is its argument, in brackets because it is optional. The words after that say what it does.
  2. Only what works now. /resume is listed because a run here can be carried on. /stop is not, because nothing is running. Start a flow and the list changes: /stop appears, /resume goes, and /flow reads Set up the running flow's agents.
  3. The list's keys. While the list is open, the status line says what the keys do to it: ↑ ↓ move, tab takes the highlighted row, esc puts the list away.
  4. The hint. Once a word is complete, the list gives way to a single line above the prompt saying what the command takes. It stays while you type the argument.
  5. enter run. With a whole command typed, enter sends it. The list is closed, so enter no longer picks from it.

Check it worked ​

  • tab replaced the half-typed word with the whole one, and the cursor is after it.
  • The status line's keys went back from the list's to the prompt's.

What is offered ​

You typeThe list offers
/every command that would do something now, with what it takes after its name and what it is for
/flow every flow you can run here, by the name it is offered under
/settings its nine pages: general, notifications, daemons, accounts, fallback, runtimes, backup, workspace, usage
$the same flows, as $name. $ralph_loop fix the build starts that flow on that task.

The commands follow what is going on. /stop is listed while a flow runs and not once it is stopping; /resume only with nothing running and a run here to carry on; /claim only on an outworlder's transcript that nobody else holds. While a flow runs, no flow is offered after /flow or $, and /flow reads Set up the running flow's agents. A command that is not listed can still be typed, and says why it did nothing.

The flows are the ones Humanize ships, the ones you installed from a flowverse, and your own. A flow a flowverse lists is offered once it is installed. Each is offered under one name:

Where the flow comes fromOffered as
Humanize itself, or installed from the official flowversea bare name: chat, ralph_loop
this project's .hmz/flows/@local/twice
~/.hmz/flows/@user/twice
installed from any other flowverse@<flowverse>/<flow>

The keys ​

While the list is open:

KeyDoes
↑ ↓Move through the list.
tab or enterTake the highlighted offer. It replaces the word you were typing.
escPut the list away.

The list follows the cursor. It is offered only at the end of the line, and not over a line you brought back from history.

Variations ​

  • Start a flow in one line. $ then tab on a flow, a space, and the task: $ralph_loop fix the build. A flow that is set up here starts at once; one that is not opens /flow on its roles, holding your line.
  • Go straight to a settings page. /settings offers its five pages: /settings accounts opens the Accounts page. See Settings.
  • Narrow a long menu. The menus behind the commands list flows, models, accounts, runs and fallbacks. Press / or Search… and type into the box above the list: a row stays if the letters you type appear in its name in that order, so o5 finds claude-opus-5-5. On the menus of models, accounts and fallbacks, a name you type out whole, or the start of one, comes first: claude-sonnet-5 lists claude-sonnet-5 above claude-sonnet-4-5. esc leaves the search first, then the menu.
  • Type a path on a form. Where a form asks for a file or a directory on this machine, such as where to export a run or which ssh config to import, the path completes as you type, as in a shell. What it could become is listed under the form; tab finishes as much as those share, then steps through them; ~ is your home; dot-files are listed once you type a .. See Path completion.

What is not offered ​

  • A flow anywhere else. A flow outside the places above is a path, and you type it: /flow ./flows/mine.
  • The task. Everything after $name is yours to write.
  • Models and accounts. Those are chosen from lists inside /flow, when you set up each agent.

Troubleshooting ​

The command I want is not in the list ​

It would do nothing right now: /stop with nothing running, /resume while a flow runs. Type it anyway and enter says why, such as hmz: no flow is running.

enter took a suggestion instead of sending my line ​

The list was open and enter took its highlighted row. Press esc to put the list away first, or finish the word so the list closes.

No flows are offered after $ ​

A flow is running, and another cannot be chosen until it stops. A flow that is offered nowhere has not been installed: type /flow and press Install more….

No list appears at all ​

The cursor is not at the end of the line, or the line came back from history. Move to the end, or type a character.

Next steps ​

Released under the Apache-2.0 licence.