Wenlan
Wenlan is a source-backed AI knowledge base and LLM wiki for AI work: organize documents and decisions into pages you can find, inspect, and review.
翻訳待ち
cairn collects your GitHub PRs and commits, summarizes them with Claude, and writes a daily worklog to a local Markdown journal — publish to Notion and more with integrations.
翻訳待ち
生産性TypeScript · CSSGitHub @ldhbenecia接続状況の再確認が必要です所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
Turns your daily dev activity into a summarized worklog
翻訳待ち
Loading the full README. The saved excerpt is shown below.
Like a trail cairn, stack one mark of work each day — and leave a path behind.
cairn turns your GitHub PRs and commits across multiple repos and accounts into a Claude-summarized worklog, recorded as local Markdown with automatic weekly and monthly rollups. Connect integrations like Notion to publish it further.
It runs as an Electron desktop app on top of a headless engine. Everything stays on your machine: it uses the Claude Agent SDK (no direct Anthropic API calls) and never sends source code or diffs to external services.Read the full README ↗Like a trail cairn, stack one mark of work each day — and leave a path behind.
cairn turns your GitHub PRs and commits across multiple repos and accounts into an AI-summarized worklog (Claude or Codex), recorded as local Markdown with automatic weekly and monthly rollups. Connect integrations like Notion to publish it further.
It runs as an Electron desktop app on top of a headless engine. Everything stays on your machine: it summarizes through the CLI you're already signed in to — Claude (Agent SDK) or OpenAI Codex — and never sends source code or diffs to external services.
Daily, weekly, and monthly entries link into one connected graph via wiki links:
Missed some past dates? Backfill collects, summarizes, and publishes them per day in one pass:
Optional: a Notion internal integration token, if you want entries published to Notion as well. To also collect local repos that aren't on GitHub, enable local Git collection in the Connections tab (off by default).
The desktop app's first-run setup walks you through connecting these and writes the config for you.
Paste this into Terminal — it downloads the latest release into Applications and launches it. Run the same line again to update.
curl -fL https://github.com/ldhbenecia/cairn/releases/latest/download/Cairn-arm64-mac.zip -o /tmp/Cairn.zip && { pkill -x Cairn; sleep 2; pkill -9 -x Cairn; ditto -x -k /tmp/Cairn.zip /Applications && open /Applications/Cairn.app; }
Files fetched with curl don't get the quarantine flag that triggers the "unidentified developer" warning, so the app opens right away — which also means that check is skipped, so only do this with a source you trust. If you get a permission error on /Applications, replace both /Applications with ~/Applications (create it with mkdir -p ~/Applications if missing).
.dmgGrab the latest .dmg from the Releases page.
macOS (Apple Silicon / arm64) for now. Intel and other platforms may follow.
The app is not yet code-signed (no paid Apple Developer ID), so macOS Gatekeeper blocks it on first launch. After dragging it to Applications, clear the quarantine flag once:
xattr -cr /Applications/Cairn.app
then open it normally. (Alternatively, on macOS Sequoia/Tahoe: System Settings → Privacy & Security → Open Anyway.)
It checks for new versions and notifies you when one is available — download the new .dmg to update. (Seamless auto-update will come once the app is signed.)
Prefer building it yourself? You can.
git clone https://github.com/ldhbenecia/cairn.git
cd cairn
nvm use
pnpm install
pnpm --filter @cairn/desktop dev # run the desktop app (dev)
Headless engine only (CLI):
pnpm build
node packages/core/dist/main.js --mode=daily --date=$(date +%F) --dry-run
Modes: daily, weekly, monthly. Manual setup of .env + worklog.config.json is documented in docs/SETUP.md (한국어) — though the desktop app generates both.
The
launchdjobs under ops/ are deprecated — auto-publish is owned by the desktop app (ADR 0015). They remain only for headless/CLI-only setups.
pnpm monorepo:
packages/core — headless engine (collectors → Claude/Codex summarizer → Notion publisher), runnable as a CLIpackages/desktop — Electron app (setup wizard, manual/auto publishing, in-app log viewer, stats dashboard, preferences)packages/web — marketing site (Next.js, deployed on Vercel); also hosts the optional cross-device sync backend (auth + stats API)packages/core) — TypeScript · NestJS (standalone) · Octokit · Notion SDK · Claude Agent SDK · Codex CLIpackages/desktop) — Electron · React 19 · Tailwind CSS v4 · electron-vite · electron-updaterpackages/web) — Next.js · Tailwind CSS v4 · Better Auth + Drizzle ORM + Postgres (cross-device sync)| Path | Contents |
|---|---|
| docs/SETUP.md (한국어) | Manual setup guide |
| CLAUDE.md / AGENTS.md | Working context for Claude Code / Codex |
| .claude/rules/ | Project rules |
Your worklogs, code, and tokens stay on your machine. Worklogs are plain Markdown files on disk; data is only sent to the services you choose to connect (GitHub, your summary engine — Claude or Codex, Notion) — never anywhere else.
cairn sends anonymous usage telemetry (PostHog) to understand how many people use it and which versions are active. It is enabled by default and can be turned off in Preferences → About → Anonymous usage stats.
app_launched, publish with mode + outcome).AGPL-3.0-or-later. Copyright (C) 2026 Donghyeok Lim.
Source code is public for reference and forks. Any derivative work — including modifications and any service that exposes this software over a network — must also be licensed under AGPL-3.0-or-later and provide its full source to users.