Skip to content
CtrlUserKnown edited this page Jul 21, 2026 · 6 revisions

dots Wiki

dots is a fast, cross-platform dotfiles manager with an interactive TUI, written in Rust. It installs your tools, wires up symlinks GNU Stow–style, applies premade app configs, keeps everything healthy, and updates itself — on macOS (Homebrew) and Linux (apt/dnf).

Repository: CtrlUserKnown/dots · Releases: latest

dots is the tool, not the dotfiles. Your actual config files live in a separate repo of your own. dots manages the symlinks between that repo and your $HOME, so nothing about your configs is baked into this tool.

What it does

  • Interactive TUI — run dots with no arguments for a dashboard covering symlink health, installed tools, shell plugins, app configs, updates, and live network status. Supports keyboard and mouse navigation.
  • Scriptable CLI — every action is also a subcommand (dots health, dots install, dots link, …).
  • Symlink management — declare your links in ~/.dots/links.toml (explicit links or GNU Stow–style folding), then create and repair them idempotently, with automatic backups.
  • Cross-platform installs — one dependency list, resolved per platform via Homebrew, apt, or dnf.
  • Premade configs — bundled starter configs for Ghostty, Neovim, and opencode.
  • Portable profiles — export your setup to personal.json and re-import it on another machine, locally or from GitHub.
  • Self-updating — built-in update checker and one-command upgrade that re-repairs symlinks after pulling.
  • Network monitor — live dashboard pane showing connectivity, latency, network name, DNS servers, and VPN status.
  • Single static binary — pure-Rust TLS, no OpenSSL/keychain, optimized for size.

Documentation

Page Contents
Installation Install script, building from source, uninstall
CLI Reference Every subcommand and flag
Interactive TUI The dashboard and its screens
Managing Symlinks links.toml, explicit links, and Stow folding
Dependencies The Required / Optional / Dev package tiers
Premade Configs Bundled Ghostty / Neovim / opencode configs
Profiles Exporting and importing personal.json
Configuration settings.toml and the ~/.personal layer
Updating How update checks and upgrades work
Development Building, testing, and project layout

Maintained by CtrlUserKnown / Charlynder

Clone this wiki locally