Skip to content

Repository files navigation

smabar

Your app dock. Extendable with your own plugins.

Linux · Windows · macOS (beta)

Latest release Downloads License: PolyForm Shield

Download · Docs · Plugin Store · Changelog

smabar at the bottom edge of a desktop, the Todos flyout open above it

Pin apps, folders, files and websites to one edge of the screen. Add plugins for whatever you want to keep an eye on: clock, system, media, weather, crypto and todos come built in, more are in the store, and a coding agent can write you a new one over MCP. smabar runs beside your system taskbar; it shows no window list and no tray.

The bar: pinned apps and folders on the left, plugin tiles for system, todos, weather and clock on the right

Install

Packages, checksums and release notes: https://smabar.com/download/

Platform Package Notes
Linux x86-64 .deb (Debian, Ubuntu, Mint), .rpm (Fedora, openSUSE) sudo apt install ./smabar_<version>_amd64.deb or sudo dnf install ./smabar-<version>.x86_64.rpm. X11 and Wayland with layer-shell.
Windows x64 installer, or the Microsoft Store The installer carries no Authenticode certificate, so SmartScreen asks once.
macOS 13+ .dmg for Apple Silicon and Intel — beta Drag smabar to Applications. The app is not notarized: allow the first start under System Settings › Privacy & Security. No click-through, no screenshots, no volume or media providers yet.

Direct installations check for signed updates and install them only after you confirm. Plugins need Python; smabar sets it up on first use.

Plugins

A plugin is a tile on the bar, a flyout for the details and a popup when something happens. Everything about it lives in your home directory: ~/.smabar/plugins/<id>/ holds the code, ~/.smabar/data/<id>/ its data, ~/.smabar/logs/ its log. Edit a file and the plugin reloads.

Any language. A plugin is a process that speaks JSON-RPC 2.0 over stdin and stdout, one message per line: it receives its settings, renders HTML and hears about clicks. "runtime": "exec" starts whatever program you name, in Go, Rust, Node or a shell script.

Python without setup. smabar ships uv and installs its own Python 3.14 under ~/.smabar/tools/, separate from anything on your system. "runtime": "python" has uv prepare an environment from the script header (PEP 723) and then starts that environment's Python directly, so dependencies are installed on first start and no uv process stays resident. The SDK in sdk/ (MIT) handles the protocol; a plugin is render(), log() and on_action(). The six bundled plugins in plugins/ (MIT) are the reference.

The weather flyout: current conditions, hourly curve, rain chance and a seven-day forecast     The system flyout: CPU, memory, battery and disk gauges, audio volume and network throughput

More plugins and themes are in the Plugin Store. They live in public GitHub repositories; the catalog is signed, and the app asks before it installs anything.

MCP: your agent builds and uses plugins

The bar runs an MCP server at http://127.0.0.1:7627/mcp, localhost only. Connect Claude Code, Codex or any MCP client you run locally (setup). It can do two things.

Build a plugin. Describe what you want to see:

Show the next departures of bus 412 from Marktplatz on the bar. Count the minutes down and send a popup two minutes before.

The agent reads the built-in guide (plugin_guide), writes the files into ~/.smabar/plugins/ (plugin_write_file) and the plugin runs without a restart. Every write answers with the plugin's warnings and render status, so the agent checks its own work.

Use a plugin. A running plugin can register commands with JSON Schemas; the agent discovers them with plugin_commands and calls them with plugin_call. The bundled Todos plugin registers todos.list, todos.create, todos.update, todos.complete, todos.reopen, todos.delete and todos.snooze. The tasks live in ~/.smabar/data/todos/ and never leave your machine. One paragraph in your project's CLAUDE.md, and your agent plans against the same list you see on the bar:

My tasks live in smabar's Todos plugin. Before planning, read them through the
smabar MCP tool `plugin_call` (plugin `todos`, command `todos.list`). Create
the next steps with `todos.create`, with a reminder where it helps, and
complete finished ones with `todos.complete`.

Make it yours

Top or bottom edge. Reserve space, float freely or auto-hide. A fisheye that magnifies the tile under the pointer. Four themes built in; a theme is one JSON file with colours, fonts and behaviour, so describing a look to your agent is enough to get a new one.

The five settings pages in turn: Bar, Design, Shortcuts, Plugins, System

Settings: Bar Settings: Design Settings: Shortcuts Settings: Plugins Settings: System

Boring where it counts

  • Every plugin is its own process. A crashing plugin never takes the bar with it.
  • Plugins deliver HTML, no JavaScript. The bar sanitises the markup and provides the interactions itself.
  • No cloud, no account. The MCP server listens on localhost only.
  • Plugin processes run with your user rights, so read a plugin before you install it. The source is here: read every line before you trust it.

Build from source

Stable Rust (rust-toolchain.toml), Bun, uv and just. Linux additionally needs the Tauri system libraries listed in .github/workflows/ci.yml.

just check   # every gate: format, lint, tests
just dev     # the app against the Vite dev server
just build   # release bundles for this machine

Contributing

Bug reports and pull requests are welcome. See CONTRIBUTING.md.

License

PolyForm Shield 1.0.0. The plugin SDK in sdk/ and the bundled plugins in plugins/ are additionally available under the MIT license.

About

Your app dock. Extendable with your own plugins. Linux, Windows, macOS (beta).

Topics

Resources

Contributing

Stars

29 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages