Every feature, explained

QuickSheet packs a surprising amount into a zero-dependency .NET 9 binary. Here's what it can do.

🖥️ Desktop wallpaper mode

QuickSheet's signature feature. Launch with --desktop and your wallpaper becomes a fully interactive, transparent spreadsheet grid. Type anywhere, launch apps, run inline commands — all without opening a window.

⌨️ Terminal TUI mode

Run QuickSheet in any terminal for a classic spreadsheet experience. Navigate with arrow keys, edit cells inline, search with Ctrl+F. Works over SSH, in tmux, on headless servers.

🔤 Smart cell prefixes

Cell content drives behavior. Type a prefix and QuickSheet does the rest — no menus, no dialogs, no right-click context menus. Just type.

r: command Run a command

Press Enter on a cell starting with r: to launch any shell command. Open apps, run scripts, trigger builds — your spreadsheet becomes a launcher.

i: command Inline subprocess

Live output from a subprocess rendered directly in the cell. Uses ConPTY on Windows, pipe redirect on Linux. Output capped at 200 lines, thread-safe.

s: 1,4,2,8,5 Sparkline chart

Comma-separated numbers rendered as Unicode block bars (▁▂▃▄▅▆▇█). Instant in-cell data visualization — no charting library needed.

https://... Hyperlink

URLs are auto-detected and rendered as clickable hyperlinks. Press Enter to open in your default browser.

{A1::C10} Cell range reference

Reference a rectangular range of cells. Used by formulas and the extension protocol to read/write cell blocks.

c:COLOR: Cell coloring

Prefix any cell with c:red:, c:blue:, c:green:, etc. to set its background color. 16 console colors supported. The prefix is hidden during display — only the color and content are shown.

c?: rule, *=default: Conditional color

Value-driven cell coloring. Set rules like c?: >90=green, >50=yellow, *=red: 85 to dynamically pick background color based on the cell value. Supports > < >= <= = operators and a * wildcard default.

ext: name args Extension call

Invoke any installed extension. The extension reads/writes cells via the JSON-lines stdin/stdout protocol.

w: https://... Live web fetch

Fetches the first line of any HTTP/HTTPS URL and displays it in the cell. Auto-refreshes every 5 minutes. Press F5 to force-refresh all w: cells instantly. Zero NuGet — uses BCL HttpClient.

# text / ## text Section headers

Prefix any cell with # (H1) or ## (H2) to create scannable section dividers in your grid. H1 renders with a gold foreground; H2 renders in cyan. The prefix is hidden — only the label is shown. Works in both console and desktop wallpaper mode.

b: text Bold cell prefix

Prefix any cell with b: to render it in bold with bright-white emphasis. Useful for labels, row totals, column headers, and any cell you want to stand out at a glance. Works in both console and desktop wallpaper mode (FontStyle.Bold on Windows, Xft bold on Linux).

Auto-fit Column Widths (Desktop)

In desktop wallpaper mode, each column automatically sizes to its longest cell content. Minimum width: 5 characters; maximum: 30 characters. If total column widths exceed the screen, all columns are proportionally scaled down. Works on both Linux (X11) and Windows (WinForms) — no manual resizing needed.

Row Duplication (Ctrl+K)

Press Ctrl+K in desktop mode to instantly duplicate the current row. An exact copy is inserted below the current row and the cursor moves to the duplicate — ready for editing. Fully undoable with Ctrl+Z.

↩️ Undo / Redo

Full undo/redo stack with Ctrl+Z and Ctrl+Y. Tracks cell edits, row deletions, row insertions, and clears — up to 200 steps deep. Consecutive edits to the same cell are grouped into a single undo action.

🧭 Go-to-cell navigation

Press Ctrl+G and type a cell reference like A1, C5, or Z99 to jump your cursor instantly. No scrolling through large grids — just type the address and you're there.

📊 Smart status bar

The TUI status bar shows contextual information at a glance — no need to check the terminal title or file manager.

🎨 Theme presets

Cycle through 5 built-in themes with Ctrl+T in both TUI and desktop wallpaper mode. Each theme sets grid lines, headers, cell text, selection highlight, and status bar colors.

🔢 Built-in math

No formula bar needed for the basics. QuickSheet computes column sums (Σ) and row products (Π) automatically for any column or row containing numeric values. Results appear in dedicated summary cells.

💾 CSV persistence

Everything is a CSV file. No proprietary formats, no database, no JSON state files. Open your spreadsheet data in any tool — Excel, LibreOffice, pandas, awk, or a text editor.

Full export formats guide →

🧩 Extension system

QuickSheet extensions are standalone executables that communicate via a JSON-lines stdin/stdout protocol. Write extensions in any language. Install by cloning a git repo — no package manager, no registry, no trust chain beyond the code you can read.

Browse the extension directory →

⌨️ Keyboard shortcuts

KeyActionMode
Arrow keysNavigate cellsTUI + Desktop
EnterEdit cell / execute commandTUI + Desktop
EscapeCancel editTUI + Desktop
DeleteClear cellTUI + Desktop
Ctrl+FSearch cellsTUI
Ctrl+TCycle themeTUI
Ctrl+ZUndoTUI
Ctrl+YRedoTUI
Ctrl+GGo to cellTUI
Ctrl+BSort column (asc/desc toggle)TUI
Ctrl+HHelp overlayTUI
Ctrl+SSaveTUI + Desktop
TabNext cellTUI + Desktop
Ctrl+CQuitTUI

🌐 Cross-platform

Windows Win

WinForms host with Win32 interop. WorkerW embedding places the grid behind desktop icons. Full ConPTY support for inline subprocesses.

Linux Linux

Raw X11 P/Invoke (libX11.so.6, libXft.so.2). Window type set to _NET_WM_WINDOW_TYPE_DESKTOP. Requires X11 session.

Zero NuGet dependencies Both

Not a single NuGet package. All platform interop is hand-written P/Invoke. The entire project compiles from source with just the .NET 9 SDK — nothing else to install, audit, or trust.

Try it now

⭐ Star on GitHub 🧩 Browse Extensions 📖 60-Second Tour