Carbon

Carbon: Simple on the surface, powerful underneath

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

What You Get Right Away

Capture & organize

  • Quick inbox for ideas
  • Projects to group related tasks
  • Tags to categorize work
  • Due dates and defer (snooze) dates
  • Priority flagging

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
  • Custom Views - Create custom views with powerful filters.

Works offline, syncs when ready

  • Full browser app with SQLite
  • Works completely offline
  • Syncs to your server whenever you connect
  • 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

Power Features

  • Recurring tasks — set up repeating work
  • Nested tasks — break work into subtasks
  • Drag-and-drop — organize your way
  • Dark/light mode — fits your lighting
  • 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
  • Sharing — collaborative projects with read/write access
  • Comments — per-task discussions with @mentions
  • Markdown export — export your lists and tasks as clean, portable Markdown
  • REST API — integrate with Home Assistant, scripts, anything

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 and tells you exactly what changed, tracking token usage per command.
  • Agent API (/api/agent/*) — a small set of granular tools (resolve, lists, items, add, complete, update, tag, geo-tag, nearby, geocode) 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.
  • Bulk tagging — add or remove tags across a whole list, tag, query, or set of items in a single call.

Location-Aware Reminders

  • 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.

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