You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Sequential logging · Jira triage · AI meeting prep · Voice captureLocal-first · Privacy-first · Zero context switching
what is this
Gutter is a personal productivity system built around the Bullet Journal method — wired up with the stuff that actually matters: AI that runs locally, Jira integration so you don't lose your flow, voice transcription, natural language commands, and meeting prep that does the research for you.
It's not a note-taking app. It's not a task manager. It's the place you dump everything — tasks, thoughts, appointments, blockers — and let the system help you make sense of it.
Designed specifically for the way ADHD brains actually work. Low friction capture, external scaffolding, zero context switching.
why gutter?
Because context switching destroys productivity.
You're working on GDEV-247 when Slack pings. Meeting in 5 minutes. You open Jira to find the ticket, open your notes to find the context from last week, check your calendar to see who's coming, scan the thread for background... 10 minutes later you're late and half-prepared.
Gutter fixes this:
Sequential logging — One place for everything. Task, note, blocker, whatever. It all goes in the log with a signifier.
AI meeting prep — One click. Ollama pulls your Jira tickets, Slack context, and local notes, then generates prep notes.
Natural language commands — meeting at 3pm with Ryan creates the appointment. done with GDEV-123 marks it complete. No forms, no clicking.
Voice capture — Driving? Walking? Hit the mic button, dump your thought, keep moving.
Calendar integration — Apple Calendar events show up in the monthly grid and day view. No switching apps.
Jira triage — See your backlog, create issues, mark done — all without leaving the log.
Local-first — Your data stays on your machine. Ollama runs locally. No cloud APIs harvesting your notes.
Built for ADHD:
Fast capture — zero friction between thought and log entry
External structure — the system remembers what you'd forget
Visual signifiers — color-coded tasks, appointments, notes at a glance
Migration ritual — monthly review forces closure, not guilt
No overwhelm — one day at a time, one task at a time
For engineers who think in tickets:
Jira integration that doesn't suck
Natural language commands that feel like CLI
Dark themes that don't burn your retinas at 2am
SQLite backend you can grep if you want
MIT license — fork it, break it, make it yours
quick start
git clone <repo-url>cd gutter
bun install
cp .env.example .env
bun run dev
# → http://localhost:3000
Migration — End-of-month review. Mark done, carry forward, or drop
▸ AI — all local, via Ollama
No cloud APIs. No data leaving your machine.
Natural Language Commands — Type like a human. The system figures it out.
Meeting Prep — One click. Ollama searches your Jira tickets, Slack channels, and local notes, then generates formatted prep notes with context and talking points.
Transcript Upload — Paste a meeting transcript, get a summary and action items back
AI Triage — Surface what matters in your Jira backlog without reading 47 tickets
# Get Ollama running with a tool-calling model
ollama pull qwen3
▸ natural language commands
You type
What happens
buy milk tomorrow
Task entry for tomorrow
meeting at 3pm with Ryan
Journal appointment + Apple Calendar event
create a Books collection
New Collections page
migrate tasks from yesterday
Pulls open tasks into today
done with GDEV-123
Marks Jira ticket complete
standup 9am daily
Recurring appointment
Variable
Description
Example
JIRA_URL
Jira instance URL
https://company.atlassian.net
JIRA_EMAIL
Jira login email
you@company.com
JIRA_API_TOKEN
Jira API token
your-api-token
JIRA_PROJECTS
Comma-separated Jira project keys to track
GDEV,ISE
SLACK_BOT_TOKEN
Slack bot token
xoxb-...
SLACK_CHANNELS
Readable channels (pipe-delimited)
C029BN2FBPD|dev-chat,C027SHEDUET|senior-devs
▸ jira
Multi-project support — JIRA_PROJECTS=GDEV,ISE
Pull open tickets into your daily context
Create issues directly from journal entries
Update issue status without leaving the app
5-minute in-memory cache so you're not hammering the API
▸ voice
Hit the mic, speak your entry
Local transcription via whisper.cpp — no Whisper API, no cloud
Voice input runs through the same NL command interpreter
Google Calendar — for non-macOS or alongside Apple Calendar
[ ]
Outlook / Microsoft 365 — calendar + email in one
[ ]
iMessage / SMS — log conversations as entries, reply from journal
[ ]
Linear — issue tracking alternative
[ ]
GitHub Issues — surface PRs and issues in meeting prep
meetings
Status
Feature
[x]
Manual transcript upload + AI summary
[x]
AI meeting prep with Jira + Slack context
[ ]
Native Meetly support — auto start/stop transcription when a meeting begins and ends. No more manual paste.
[ ]
Transcript auto-linked to project/collection
[ ]
Action items extracted and added as tasks automatically
projects
Status
Feature
[x]
Collections — topic-specific pages
[ ]
Projects — like collections but richer. Ties together transcripts, prep notes, tasks, and entries by feature or initiative. Queryable by LLM ("what have we discussed about auth in the last month?")
[ ]
Automated project linking — entries and transcripts auto-tagged to the right project based on content
[ ]
Project kanban — visual task board per project with status columns
[ ]
Global kanban — all tasks across all projects in one board
AI
Status
Feature
[x]
Ollama (local LLM) — meeting prep + NL commands
[x]
whisper.cpp (local STT) — voice capture
[ ]
RAG — embed journal history, transcripts, notes, and docs. Meeting prep with real long-term context, not just what's in Jira right now. Needs proper graph DB investigation.
[ ]
Graph database — store entities, relationships, and context as a knowledge graph (investigating: Neo4j, Memgraph, LanceDB, or SQLite + vector). Unlocks semantic querying across everything.
[ ]
LLM router — swap between Ollama, OpenAI, Claude, Gemini via env config. If you already have an OpenCode, OpenClaw, or Claude Code subscription, use those credits instead of paying twice.
[ ]
Assign task to LLM — flag any entry and delegate it to a connected AI agent. "Do this" sends it to Claude Code, OpenCode, or a local Ollama agent.
[ ]
Local agent integration — first-class support for Claude Code, OpenCode, and OpenClaw. Tasks flow in, results flow back as journal entries.
[ ]
Embeddings — semantic search across entries, not just FTS keyword matching
[ ]
Auto-tagging — AI assigns signifiers, tags, and project links on capture
[ ]
Weekly review — AI-generated summary: what got done, open loops, patterns
journal
Status
Feature
[x]
Daily, Monthly, Future log
[x]
Collections
[x]
Migration flow
[x]
Natural language commands
[ ]
Better migration — smarter handling of unfinished tasks. Aging, context-aware migration suggestions, auto-carry vs auto-drop rules.
[ ]
Habit tracker — daily check-ins with streak visualization
[ ]
Recurring tasks — "every Monday" without manual entry