Work mode
Hydra in a terminal can look like a terminal at work. Type .work on a
character’s screen and the whole screen becomes a shell running a job:
repositories cloned, a build compiling, a log scrolling by. Nothing of the
game is drawn, the terminal’s title is the shell’s, no sound plays and no
notification shows, and the tray icon goes away. Type .work again and
your screen is back as it was, with every line you missed in it.
The game plays on underneath. Your characters stay logged in, your triggers fire, Lich runs, and what you type still goes to the game: the prompt at the foot of the fake shell is your real command line in disguise. Keybinds and macros work as always.
PS C:\src> git clone https://github.com/lindqvist/shardlog.git
Cloning into 'shardlog'...
remote: Enumerating objects: 4281, done.
remote: Counting objects: 100% (612/612), done.
remote: Compressing objects: 100% (288/288), done.
Receiving objects: 100% (4281/4281), 28.70 MiB | 3.05 MiB/s, done.
Resolving deltas: 100% (2130/2130), done.
PS C:\src> cd shardlog
PS C:\src\shardlog> git log --oneline -8
3f9a1c2 Fix retry logic
8be04d7 Bump dependency pins
PS C:\src\shardlog>
The command
.workcovers the screen, or lifts the cover..work onand.work offdo one or the other, for a key bound to each..work curl,.work build,.work tailor.work sshcover the screen with that scene and keep to it. Bare.workplays one at random each time a scene ends..work helpsays all of this.
Bind a key to any of these in Menu › Editors › Keys, as you would bind any command.
The scenes
A scene is a shell’s job, line by line, at a believable pace, with its names drawn afresh each time round. Four come with Hydra:
- curl: repositories fetched and cloned, their files listed and their README read. Dense and long, and anything odd in it looks like part of the download.
- build: a Rust workspace compiled, a test failing, the file opened, the test run again.
- tail: a web server’s access log followed, with bursts and the odd error.
- ssh: a remote host’s journal followed, a service looked at, the disk checked.
Nothing is fetched from anywhere. A progress meter is a formula; the names are lists in the scene’s file; the addresses are the documentation ranges that belong to nobody. The clock in a log line is the real one, running on from when the cover went up.
The four are written to global/work/ in your data folder the first time
the cover goes up, as curl.toml and so on. Change one there and your
version is used; add a file of your own and .work <its name> plays it.
Hydra never writes over a file that is there, so delete one to get the
shipped version back.
Writing a scene
title = "curl" # the terminal's title while this plays
prompt = "PS C:\\src{dir}> " # {dir}: where the scene has gone
rest = 20 # seconds idle at the prompt before it plays again
[names] # {repo}, {user}: one picked each time round
repo = ["fast-json-rs", "kube-rollout"]
user = ["mkdev", "lindqvist"]
[[lines]]
text = "git clone https://github.com/{user}/{repo}.git"
wait = 1.5 # seconds after the line before
jitter = 1 # at most this much more or less
color = "plain" # plain, dim, green, yellow, red, cyan, magenta
[[lines]]
meter = "git" # a progress meter, redrawn in place: git or curl
lasts = 8 # seconds to reach the end
[[lines]]
text = "cd {repo}"
dir = "\\{repo}" # the prompt's {dir} from here
[[lines]]
text = "{date} {clock} {n:100-999} {hash}"
times = 40 # the line again this many times, names drawn afresh
The slots: {name} for any list under [names], kept the same all the
way round; {n:a-b} a number from a to b, fresh every use; {hash} seven
hex digits; {clock} the time of day as 14:36:10, {date} today as
28/Oct/2026, {day} as Oct 28; {dir} where the scene has gone. A
line with clear = true empties the screen first.
The one thing that gets through
A script check is the reason to be at the keyboard, and the cover would hide it. So one thing passes: any line the lookout has not learned is written into the scene as its next line of output, plain, with no mark, in the scene’s own colour. To someone looking over your shoulder it is one odd line in a wall of output. To you, who know to look, it is the warning. Answer by typing, as always; the prompt is your command line.
Keep the lookout learning before you rely on this. A lookout that has not learned your routine passes most of your story through the cover.
Covering itself
The Work mode rows of Hydra’s General settings page:
- Work mode prompt: what your command line is drawn after, over each
scene’s own.
PS C:\src{dir}>orops@web-03:~{dir}$, with{dir}where the scene has gone. A space is put after it. - Work mode scene: the scene to play and keep to. Empty, one at random each time round.
- Cover on focus lost: the screen covers itself when the terminal’s
window loses the focus, as you click away to something else. A click
back does not lift it:
.workdoes. - Cover after idle: seconds without a key before the screen covers
itself.
0never.
What it cannot hide
- Mid-word. The prompt shows what you are typing.
attackisattackuntil you press Enter. Give the telling commands an alias. - The terminal program. The taskbar, a hover, and a task manager still
show the terminal program by its own name, and
hydra-tuias a process. Over SSH from another computer, none of that is there. - Hydra’s windows. Sounds, notifications and the tray icon are held back only while no Hydra window is open on the same computer. A play window open beside the terminal plays its sounds, and shows the game.
- The clock in a log. It is the real one. A log that says
14:36at nine in the morning is a log of somewhere else.