Carbon

Carbon: Simple on the surface, powerful underneath

Carbon 1.0 is an offline-first, self host-able sync server task manager. With the simplicity of generic ToDo apps, the power of leading GTD apps, deep time tracking for real accountability, and a core belief in No SaaS!

What You Get Right Away

Capture & organize

  • Quick inbox for ideas — notes as well as tasks
  • Projects to group related tasks, and any item can become a container (unlimited nesting)
  • Tags to categorize work — colored, nestable, synced family-wide
  • Due dates, a separate defer (snooze) date, and a separate reminder time
  • Priority flagging, four levels plus a flag

Smart views

  • Today - what’s due today
  • Inbox - capture and process
  • Flagged - your priorities
  • Review - (GTD) Review Projects, so you don’t forget!
  • Nearby - Tasks valid at your location
  • Plan - Plan your day, backed by a time budget
  • Recently Deleted - restore a task, or a whole cascade, for 30 days
  • Custom Views - Create custom views with powerful filters — nested AND/OR/NOT, or just describe one in plain English

Works offline, syncs when ready

  • Full browser app with a real SQLite database
  • Works completely offline
  • Conflict-free CRDT sync to your own server whenever you connect
  • Mandatory 2FA (email and/or authenticator) on sync accounts, TLS in transit
  • No cloud, no accounts you don’t control

Deploy it yourself

  • Docker Compose setup
  • Runs on your VPS, NAS, or home server
  • Optional authentication
  • No vendor lock-in

Time Tracking That Holds Up to Real Accountability

Time tracking isn’t bolted on — it’s core to how Carbon works.

  • Per-user sessions, task segments and pauses, surfaced in a Time view (List / Timeline / Chart) with CSV reporting
  • Retroactive editing — merge an accidental restart, split or trim untracked gaps, drag segment handles, or slot a task into a gap after the fact
  • Time notes — pin a timestamped note into the active block straight from the timer bar
  • Optional GPS tracks while a timer runs — denoised and attached to a time note, continuing in the background on Android
  • Estimated durations per task feed a daily time budget in the Plan view, and per-project review intervals keep GTD reviews honest

Power Features

  • Recurring tasks — including ordinal patterns and completion-relative repeats
  • Nested tasks — break work into subtasks, unlimited depth, with dependencies gating what’s next
  • Drag-and-drop — reorder or re-nest, your way
  • Undo everywhere — multi-level undo/redo, an inline Undo snackbar on delete, and 30-day Recently Deleted recovery on top
  • Dark/light mode — plus Light, Dark, ePaper, Gruvbox, Ayu, Nord and Catppuccin themes
  • PWA installable — install as an app
  • Desktop app — global quick-add hotkey (Ctrl/Cmd+Shift+A), system tray, and close-to-tray
  • Task assignment — delegate to team members, with auto-share on assign
  • Sharing — share a whole project or a single task (read or write, inherited down its subtree), plus a “Shared with me” view
  • Federation — link a project subtree to another workspace — same server or a different Carbon host entirely — off by default and gated by both sides’ approval
  • Comments — per-task discussions with @mentions and attachments
  • Markdown export — export any project or task subtree as clean, portable Markdown
  • REST API — integrate with Home Assistant, scripts, anything

Notes, Notebooks & Recipes

  • First-class notes — a dedicated item type, nestable like tasks, edited with a rich Markdown editor; convert task ↔ note anytime without losing data
  • Notes projects — flip a project to Notes and it becomes a notebook
  • Note rows render as cards, with a generated thumbnail from the note’s first image
  • Recipe mode — flip a note to Recipe for a scaled servings view; Optimise rewrites messy Markdown into a parseable recipe via the LLM agent, and a copy-able prompt imports a recipe straight from a web page
  • Zip export of every note (Markdown + images) from Data backup

Talk to It: Natural-Language Control

Carbon understands plain language — capture and manage tasks the way you’d describe them out loud.

  • In-app command box — type something like “add milk to shopping, due Friday”. A server-side tool-loop carries it out — add, complete, delete, rename, tag, schedule, share, assign, start a timer, geofence a tag — and tells you exactly what changed, tracking token usage per command.
  • Agent API (/api/agent/*) — granular tools spanning tasks, notes, recipes, sharing and time tracking that any LLM can compose. Scoped tokens, per-item write gating, and fuzzy name→ID matching keep it safe and forgiving.
  • Telegram bot — chat with Carbon in plain language. It remembers the conversation, so follow-ups just work: “add bread and milk to the shopping list”, then “sausages too”, then “I’ll get bread and sausages from Coles, milk from Aldi” — and each item is tagged to the right place.
  • Hermes skill & webhook — drive Carbon from the CLI or any script via the carbon-nl skill and its webhook listener, or wire up any OpenAI/Anthropic-compatible endpoint as a bot user.
  • Bulk tagging — add or remove tags across a whole list, tag, query, or set of items in a single call.

Location-Aware Reminders

  • Local reminders, no server required — due/defer alerts still fire fully offline (foreground in the browser, background on native apps)
  • Push reminders (sync server) — Web Push / FCM to every signed-in device
  • Place geocoding“remind me at the nearest Coles” finds the closest match (via OpenStreetMap) and geofences a tag to it. Cached, rate-limited, and opt-in per deployment.
  • Multi-device location — every signed-in device can report its own GPS as a toggleable source. Name and manage your devices; the freshest accurate fix wins. Home Assistant is just one more source.
  • Geofencing — fire reminders when you arrive or leave, via device GPS or Home Assistant, in the background on the native apps.

Learn More

Full Feature List — Detailed breakdown of every feature

Blog & Videos — Deep-dives into key features (coming soon)


Get Started

Visit carbon.etx.sx

Or

git clone https://github.com/emmertex/carbon.git
cd carbon
npm install
npm run dev

Open http://localhost:3042. Works offline immediately. Configure a server in Settings when you’re ready to sync.

Self-host: docker compose up -d --build

← Back to Projects