MCPcopy Index your code
hub / github.com/champ-patyatawee/worf

github.com/champ-patyatawee/worf @v0.1.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.3 ↗ · + Follow
748 symbols 1,380 edges 136 files 104 documented · 14% updated 5d agov0.1.3 · 2026-07-03★ 65
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Worf

All-in-one desktop productivity. Kanban, notes, OKRs, AI chat, sprints, terminal. Local-first. Open source.

MIT License Built with Tauri Platform


Dashboard Notes
Sprint Terminal
AI Chat Settings
Board Settings

Dashboard · Notes · Sprint · Terminal · AI Chat · Settings · Board


Features

Feature What it does
Dashboard Widget-based home screen. Add, drag, resize widgets — Pomodoro timer, Clock, Calendar, OKR progress, Task overview, AI Chat topics. Your command center.
Notes Wiki-style editor with [[wikilinks]], backlinks, tags, folders, and a trash system (soft-delete). Markdown editing, code syntax highlighting, AI autocomplete.
Kanban 3-column boards (Todo / In Progress / Done). Drag-and-drop tasks, priority badges, task detail modals. Simple, visual, fast.
Sprints Sprint management with Active / Planning states. Backlog grooming, velocity tracking, sprint reviews. Ship on schedule.
OKRs Objectives & Key Results with confidence scoring, quarterly grouping, check-in history, and linked Kanban boards. Align your work.
AI Chat Multi-model chat — Claude, GPT, or local Ollama. Sessions, prompt templates, markdown rendering, syntax-highlighted code blocks. Bring your own key.
Terminal Embedded PTY terminal. Toggle with `Ctrl+``, dock to top or bottom, go full-screen. No more alt-tabbing.
Settings AI provider config, keyboard shortcuts, nav shortcuts, WAL-aware backup & restore with native file dialogs.

Quick Start

# Prerequisites
#   - Node.js 20+
#   - Rust 1.75+ (rustup)
#   - pnpm (npm install -g pnpm)

# Install dependencies
pnpm install

# Launch in dev mode
pnpm tauri dev

# Production build
pnpm tauri build

On first launch, Worf creates a single worf.db SQLite file in your app data directory. That's it. No setup, no accounts, no cloud.


Why Worf?

Worf is for people who want their tools back.

  • Local-first by design. Your data lives in a single SQLite file on your machine — not in someone else's database. Back it up with cp. Sync it with Dropbox. Own it forever.

  • Free as in speech and beer. MIT license. No per-seat pricing, no "team" tier, no enterprise upsell. Notion, Linear, and Jira can stay in the browser — Worf lives on your dock.

  • BYO AI. Plug in your own API key for Claude, GPT, or run Ollama locally. No subscription, no usage caps. The AI is a tool you control, not a vendor lock-in.

  • Native performance. Built on Tauri 2 with a Rust backend and React 19 frontend. Tiny binary, low memory footprint, instant startup. It feels like a real app because it is one.


Tech Stack

Layer Tech
Desktop Shell Tauri 2
Frontend React 19, TypeScript, Vite, TailwindCSS
Backend Rust (rusqlite)
Database SQLite (WAL mode, single file)
Markdown Text Markdown editor
Terminal PTY (pseudo-terminal) via Tauri plugin
AI Providers Anthropic Claude, OpenAI GPT, Ollama (local)
State React Context + custom hooks
Testing Vitest + Testing Library, cargo test

Development

# Frontend + backend in dev mode (hot reload)
pnpm tauri dev

# Run frontend tests
pnpm test

# Run Rust backend tests
pnpm test:rust

# Open DevTools
pnpm tauri dev -- --debug

# Rust backend logs
RUST_LOG=debug pnpm tauri dev

Project Layout

src/          React frontend (components, pages, services)
src-tauri/    Rust backend (commands, database, migrations)
src-tauri/migrations/   SQLite schema files
screenshots/  App preview images

License

MIT © 2025-2026 — Use it, fork it, ship it. No restrictions.

Extension points exported contracts — how you extend this code

Board (Interface)
* After kanban removal, board_type is always "sprint".
src/test/projects-board-type.spec.ts
TerminalTheme (Interface)
(no doc)
src/types/terminal.ts
XtermInstance (Interface)
(no doc)
src/components/terminal/TerminalPanel.tsx
ChatSession (Interface)
(no doc)
src/stores/chatSessionStore.ts
WidgetItem (Interface)
(no doc)
src/pages/Dashboard.tsx
NavigationShortcut (Interface)
(no doc)
src/test/projects-board-type.spec.ts
TabSwitchShortcut (Interface)
(no doc)
src/types/terminal.ts
TerminalOutputPayload (Interface)
(no doc)
src/components/terminal/TerminalPanel.tsx

Core symbols most depended-on inside this repo

emit
called by 32
src/components/notes/noteStore.ts
extractUrls
called by 22
src/stores/chatSessionStore.ts
emit
called by 18
src/stores/terminalStore.ts
setup
called by 18
src-tauri/src/db.rs
logDebug
called by 17
src/components/terminal/TerminalPanel.tsx
emit
called by 17
src/stores/chatSessionStore.ts
isTerminalVisible
called by 15
e2e-tests/specs/terminal.e2e.js
jsClickElement
called by 13
e2e-tests/specs/terminal.e2e.js

Shape

Function 637
Interface 73
Class 34
Method 4

Languages

TypeScript75%
Rust25%

Modules by API surface

src/stores/terminalStore.ts42 symbols
src-tauri/src/commands/notes.rs35 symbols
src/components/notes/noteStore.ts31 symbols
src/stores/chatSessionStore.ts29 symbols
src-tauri/src/commands/url_fetch.rs25 symbols
e2e-tests/specs/okr.e2e.js24 symbols
src/pages/ProjectPage.tsx22 symbols
src-tauri/src/db.rs22 symbols
src-tauri/src/commands/terminal.rs22 symbols
src/pages/SprintProject.tsx18 symbols
src-tauri/src/commands/okr.rs16 symbols
e2e-tests/specs/sprints.e2e.js16 symbols

For agents

$ claude mcp add worf \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page