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.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dasshboard-0.2.1.tar.gz.
File metadata
- Download URL: dasshboard-0.2.1.tar.gz
- Upload date:
- Size: 2.8 MB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e87eb364461c4f7e5867391d2df57657f9a3c43a5865234f7f945b0d7e1b66e
|
|
| MD5 |
6ecfcca7c5e82ab7db2cca1f8e89ffc8
|
|
| BLAKE2b-256 |
e18df8541ed3b4afae97ec1707c6e4421d4b82797f64658010c7ef47555d6de2
|
File details
Details for the file dasshboard-0.2.1-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: dasshboard-0.2.1-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 559.1 kB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a47c7ca2c36cace3246659ede8ac6ad31cc4982535d9deaa1c0e353882a8d644
|
|
| MD5 |
6762b3bbc30c376d87c31b5c4a879c64
|
|
| BLAKE2b-256 |
77bb540fb7c9e486d007f822b7575089a5a45a67c260907d2c9706d751596fc0
|