dasshboard
A home screen for your terminal. Every host in ~/.ssh/config — plus anything you
add yourself — becomes a tile. Pick one and it connects.
Install
uv tool install dasshboard # or: pipx install dasshboard
dasshboard # try it
dasshboard --startup on # ...then, if you want it with every terminal
Installing touches nothing but your PATH. --startup on is the only thing that
edits a shell rc, and --startup off undoes it exactly.
Keys
click / ⏎ / space |
open the tile |
1–9 |
open that numbered tile |
t / w / c |
open in a new tab / new window / this terminal, once |
arrows / hjkl |
move around |
g / G |
first / last |
/ |
find by name, target, or jump host |
a e d |
add / edit / duplicate a tile |
D |
delete it (asks first) |
x / X |
hide it / show every hidden tile |
m |
grab it, arrows move it, ⏎ drops it |
s / S |
settings / groups |
r |
re-read both config files |
q / esc |
quit |
Everything is editable in the TUI — there is no $EDITOR handoff. ~/.ssh/config
is never written to: editing one of its hosts writes an override block in
config.toml that merges on top of it.
Config
~/.config/dasshboard/config.toml (%APPDATA%\dasshboard\ on Windows), created
with a commented template on first run. dasshboard --config prints the path.
[options]
include_ssh_config = true # false shows only the hosts defined here
show_hidden = false # open with hidden tiles on screen; X toggles them
open_in = "tab" # "tab", "window" or "current"
[theme]
primary = "#aaaaaa"
accent = "#ff0000"
[[local]] # a command on this machine
label = "MACBOOK-PRO"
command = "/bin/zsh" # optional: your login shell by default
folder = "~/dasshboard-tui" # optional: home by default
[[host]]
name = "myserver"
hostname = "10.0.0.5"
user = "albe"
jump = "bastion"
folder = "/srv/app" # optional: the far side's home by default
command = "tmux attach" # optional: a login shell by default
color = "#4f8ab0" # optional: auto-assigned by default
hidden = false # true keeps it off the board until X
[[section]] # a group heading, drawn in this order
title = "work"
items = ["myserver", "bastion"]
Edits rewrite whole blocks as text, so your comments and formatting survive. A TOML error is reported in the status line and leaves the board usable.
Compatibility
The TUI runs anywhere — macOS, Linux, BSD, Windows Terminal. Opening a session in this terminal works everywhere too.
Opening a new tab or window needs a terminal with an automation interface,
which today means Ghostty ≥ 1.2 on macOS; there the new surface also gets the
host's colour as a tint and its circle in the tab title. Everywhere else tab and
window resolve to current — they still parse and still travel in a shared
config, so nothing breaks. Override the guess with
DASSHBOARD_BACKEND=ghostty|inplace.
Development
cargo build --release # ~/.local/bin/dasshboard symlinks to the output
cargo test # parsing, escaping, colour assignment, layout
./target/release/dasshboard --list # tiles and colours, no TUI
./target/release/dasshboard --open alex # connect to one host, no TUI
./docs/demo/record.sh # regenerate the gifs (needs vhs)
src/platform.rs holds the OS differences; src/ghostty.rs is the only module
that knows Ghostty exists. Layout is checked headlessly with ratatui's
TestBackend.
Metadata
Release files for dasshboard 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dasshboard-0.2.2.tar.gz | 2.9 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dasshboard-0.2.2-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
Total release size: 3.4 MB
Release files / dasshboard-0.2.2.tar.gz
| Download URL | dasshboard-0.2.2.tar.gz |
|---|---|
| Size | 2.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a12ac17234883379ec131f87a7c1f920d579b3db558514e92fda9f73f9b88a5c
|
|
BLAKE2b-256 checksum How to use checksums |
8745517ccb359bf311cad71ac81893fcdfe0c370d020d9bd1a3205ae9f21e25c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / dasshboard-0.2.2-py3-none-macosx_11_0_arm64.whl
| Download URL | dasshboard-0.2.2-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 559.5 kB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
9ff438eb41bc9bc22a6d7b4ea6bea02b8c5852777b497933766e6275e060ad55
|
|
BLAKE2b-256 checksum How to use checksums |
a384123e24eb33fe23c558cd04fd7c6d473cda3f07db748d0ff1c4b69ac870aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|