Usage
July 30, 2026 · View on GitHub
Practical recipes for common scenarios.
Testing a skill
Connect to the hive and exercise the skill interactively:
hivemind-cli --access-key <key> --password <pw> --host wss://192.168.1.10
Type utterances that target the skill. The hive runs intent matching server-side. You see the response immediately without needing audio hardware on the client.
This gives a quick feedback loop for skill development, with no microphone accuracy issues and no TTS delay: only the intent match and the response.
Debugging the message bus
Use --no-curses to get line-by-line output that you can grep or redirect:
hivemind-cli --access-key <key> --host ws://127.0.0.1 --no-curses 2>&1 | tee session.log
Each speak response appears on its own line. You can correlate utterances with
responses by reading the log sequentially.
To watch only the responses:
hivemind-cli --access-key <key> --host ws://127.0.0.1 --no-curses | grep "Mycroft:"
Headless / SSH use
The curses UI works on most SSH sessions as long as the remote terminal advertises a
proper TERM. If you are on a constrained connection or a dumb terminal, disable it:
ssh user@server
hivemind-cli --access-key <key> --host ws://127.0.0.1 --no-curses
--no-curses + ws://127.0.0.1 is the recommended combination when running the
CLI on the same machine as HiveMind-core (e.g. for local integration testing).
Piping / scripting
Send a fixed utterance and capture the response:
printf "what is the weather today\n" \
| hivemind-cli --access-key <key> --host ws://127.0.0.1 --no-curses
Send a list of utterances from a file and record all responses:
hivemind-cli --access-key <key> --host ws://127.0.0.1 --no-curses \
< test_utterances.txt \
> responses.txt
The process reads until EOF, so the file approach terminates naturally when input is exhausted.
Automated regression test pattern:
#!/bin/bash
set -e
hivemind-cli --access-key "$HM_KEY" --host ws://127.0.0.1 --no-curses \
< expected_inputs.txt \
| diff - expected_outputs.txt
Local-network discovery
If you do not know the host address, omit --host and let the CLI scan:
hivemind-cli --access-key <key> --password <pw>
You did not specify a host to connect
scan for node and attempt to connect? y/n: y
Found HiveMind node: ws://192.168.1.10:5678
The CLI connects to the first node it can authenticate against and starts the
terminal. This uses hivemind_presence.LocalDiscovery (UDP broadcast on the local
subnet) and requires the hive node to have presence/discovery enabled.
Accessibility: a keyboard-only interface
HiveMind CLI needs no audio hardware:
- Full keyboard operation.
- Screen-reader compatible in
--no-cursesmode (plain stdout). - Works over SSH, so it runs on any device that can open a shell.
- Latency is network and intent processing only, with no STT/TTS round trip.
For users who prefer text over audio, or in situations where audio is impractical, such as open offices, noisy environments, or hearing impairments, the CLI gives a full interface to all hive skills.
To use it as a persistent assistant in a terminal multiplexer:
# inside a tmux or screen session
hivemind-cli --access-key <key> --password <pw> --host wss://192.168.1.10
The session persists across disconnects as long as the multiplexer session is alive.