dock

command module
v0.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 28, 2026 License: MIT Imports: 2 Imported by: 0

README ยถ

Dock

Dock is an SSH-based Markdown browser that turns your terminal into a cozy reading nook for when you don't want to open a bloated, corporate, AI-infected mini OS called webbrowser to view or navigate through markdown files. Dock makes your .md files look stunning, just like Charm's glow but with some extra steps.

Try it out, maybe you'll like it!

ssh marina@steado.tech

Why would you do this?

  • Keyboard first: Stay in the terminal. No distractions. Just beautiful docs. Your mouse is still supported ๐Ÿ
  • SSH is cool: No bloated browser but you still get all information and probably all functionality the web docs would give you without installing anything.
  • Eye Candy โœจ: Powered by the glamourous charm libraries and kitty/sixel terminal image protocols! If you have a smooth terminal setup, dock will just fit in. It comes with gorgeous themes (Nord, Dracula, Tokyo Night, and more!) to keep your eyes happy. Just use it as a subdomain. Seriously. ssh pink.marina@steado.tech just works.

๐Ÿ› ๏ธ Get it on your machine (or server)

If you are just using dock remotely, there is no need to install anything except ssh. Just ssh to the server provided by the project:

ssh docs.project.com

For running dock locally or as a SSH server for your own docs, install via Go:

go install codeberg.org/stelzo/dock@latest

๐ŸŽฎ How to use it

๐ŸŒ Server Mode

Host your docs for the world (or just your team) to see:

dock serve ./my-awesome-docs --port 2222

Dock will automatically detect dock.toml, zensical or mkdocs configurations and populate the navigation ordering and project name.

๐Ÿ•ต๏ธ Global Search & Retrieval

Quick and dirty for your scripts or your clanker:

ssh -p 2222 localhost search ./docs "how to fly"
ssh -p 2222 dock get ./docs "getting started"
๐Ÿ  Local Mode

Just point it at a folder full of Markdown files:

dock ./my-awesome-docs
๐Ÿ”— Remote Client Mode

Connect to a remote dock instance directly. This is just a fancy wrapper around ssh that prefixes the theme and ports if set via environment variables or flags.

DOCK_SSH_PORT=22 dock marina@steado.tech --theme nord

๐ŸŽจ Dress to Impress (Themes)

We've got vibes for every mood. You can set DOCK_THEME or just pick one when you connect via SSH.

The Current Wardrobe:

  • ๐ŸŒ‘ Dark (The classic from Charm)
  • ๐Ÿ—ผ Tokyo Night (Neon vibes)
  • ๐Ÿง› Dracula (For the night owls)
  • โ„๏ธ Nord (Cool and crisp)
  • โ˜• Catppuccin Mocha (Smooth & cozy)
  • ๐ŸŒธ Pink (Kawaii docs)
  • ๐Ÿณ๏ธโ€โšง๏ธ Trans (Rights!)
  • โ˜€๏ธ Light (For those who like the sun)

Pro Tip: To connect with a specific theme over SSH:

ssh -p 2222 nord@localhost

โš™๏ธ Config

File

Dock reads navigation order and project metadata from a config file in your docs directory (or its parent). It supports the following formats, checked in priority order:

  1. dock.toml / .dock.toml
  2. zensical.toml
  3. mkdocs.yml / mkdocs.yaml

Example dock.toml:

site_name = "My Awesome Docs"
dock_dir = "docs"
nav = [
    { Introduction = "index.md" }, # Root-level page
    { "Getting Started" = [        # Section header
        { Installation = "setup/install.md" }, # Sub-page
        { "Quick Start" = "setup/quickstart.md" }
    ]},
    { Reference = "reference.md" }
]

Example zensical.toml:

[project]
site_name = "My Awesome Docs"
docs_dir = "docs"

# Each block in nav is either a page or a section header
[[project.nav]]
Introduction = "index.md"

[[project.nav]]
"Getting Started" = [
  { Installation = "setup/install.md" },
  { "Quick Start" = "setup/quickstart.md" },
]
  • site_name: Project name shown at the top of the nav panel.
  • dock_dir: Path to docs folder, relative to the config file (defaults to the config file's directory).
  • nav: Ordered list of pages and sections. A string value defines a clickable page, while an array value defines a section header with nested sub-pages.
  • git_url: Git URL to clone/pull documentation from.
  • git_ref: Git branch or tag to use (defaults to default branch).
  • pull_interval: Interval between pulls (e.g., 1h, 30m).
  • cache_path: Local directory to store the cloned repository.
Environment Variables
  • DOCK_TITLE: Override the project name shown in the nav.
  • DOCK_THEME: Your default vibe.
  • DOCK_IGNORE_DIRS: Folders you want to hide (Default: assets,stylesheets).
  • DOCK_SSH_PORT: Default port for both serving and client connections (Default: 22).
  • DOCK_GIT_URL: Git repository to sync from.
  • DOCK_GIT_REF: Branch or tag to use.
  • DOCK_PULL_INTERVAL: How often to pull updates.
  • DOCK_CACHE_PATH: Custom path for Git cache.

Documentation ยถ

The Go Gopher

There is no documentation for this package.

Directories ยถ

Path Synopsis
internal
cli
ssh
tui
ui

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL