Introducing LazyDbx: a TUI for Dropbox

Published on Thursday, March 12, 2026

What's it all about?

In my previous post, I showed how to run Dropbox as a systemd user service so it keeps syncing even when no user is logged in.

That setup works well — but it introduces a few new challenges:

  1. The Dropbox desktop app might not start anymore. When Dropbox runs as a systemd service, the desktop app finds the already running daemon but fails to show a tray icon because the communication runs through the socket. This is a known issue with the headless service setup.
  2. You might want to manage Dropbox from a terminal in general — not everyone runs a desktop environment, and even on desktop machines, a TUI can be faster than the Dropbox UI.
  3. Over SSH, you need a way to check sync status, exclude folders, or add folders back — and the built-in dropbox CLI is limited. It can only show you files that are already synced locally. Excluded folders and their contents are completely invisible.

That last point is the real problem: once you exclude a folder from sync, the dropbox CLI has no way to show you what's on the server. You're flying blind.

Introducing LazyDbx

LazyDbx is a terminal UI (TUI) for Dropbox, built with OpenTUI and Bun.

It lets you browse your local and remote Dropbox files, manage sync exclusions, and create share links — all from the terminal.

Requirements

Install

bun install -g github:alexzeitler/lazydbx

Or from source:

git clone https://github.com/alexzeitler/lazydbx.git
cd lazydbx
bun install

Setup

Each user creates their own Dropbox App. Credentials and tokens stay on your machine (~/.config/lazydbx/config.json) — all API requests go directly from your computer to Dropbox, no third-party servers involved.

1. Create a Dropbox App

Go to https://www.dropbox.com/developers/apps and create a new app:

  • Access type: Scoped access, Full Dropbox
  • Permissions tab: Enable account_info.read, files.metadata.read, and sharing.write. Then click Submit in the black overlay bar at the bottom.

2. Initialize config

lazydbx init

This prompts for your App Key and App Secret and saves them to ~/.config/lazydbx/config.json.

3. Authorize

lazydbx auth

This opens the Dropbox authorization URL. Copy the code from the Dropbox page and paste it into the terminal. Tokens are saved automatically.

To re-authorize (e.g. after changing scopes):

lazydbx auth --force

4. Run

lazydbx

Browsing your Dropbox

Local

Browse files and folders synced locally in ~/Dropbox. You can exclude folders from sync, create share links, copy links, and check the sync status of individual files.

Local tab — browse synced files

Server

Browse the complete Dropbox folder structure via the API — including folders and files that have never been synced to this machine. This is the key difference to the built-in dropbox CLI: you can see everything on the server, not just what's local.

Server tab — browse full Dropbox via API with sync status

Without a configured Dropbox App, the Server tab falls back to the local filesystem combined with the exclude list.

Keybindings

Global

KeyAction
TabSwitch between Local and Server
rRefresh
qQuit

Local tab

KeyAction
j/kNavigate up/down
EnterOpen folder or file
uGo up one directory
eExclude folder from sync
sGet share link
yCopy last share link
fShow file sync status

Server tab

KeyAction
j/kNavigate up/down
EnterOpen folder (or file if synced)
uGo up one directory
SpaceToggle sync (exclude/include)
aShow auth status

Early days

LazyDbx is a fresh project and might still have rough edges. If you run into issues or have ideas, feel free to open an issue or send a pull request on GitHub.

What are your thoughts about
"Introducing LazyDbx: a TUI for Dropbox"?
Drop me a line - I'm looking forward to your feedback!