diff --git a/.github/assets/app-screenshot.png b/.github/assets/app-screenshot.png new file mode 100644 index 0000000..74d116a Binary files /dev/null and b/.github/assets/app-screenshot.png differ diff --git a/README.md b/README.md index 55403dd..875709c 100644 --- a/README.md +++ b/README.md @@ -9,75 +9,41 @@ [![version](https://img.shields.io/github/v/tag/tommy0103/obelisk?label=version&style=flat-square)](https://github.com/tommy0103/obelisk/releases) [![license](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](LICENSE) -Every past session, subagent, and workflow -- queryable by your agent. - -**Humans should not browse session history. Agents should query it.** +Every past session, subagent, and workflow -- queryable by your agent, browsable by you.
-
- Obelisk in action -
-

Ask in plain language. The agent writes the query, runs it, answers.

-
+## Two sides of the same index -## Not a session browser +Obelisk has two sides that share one SQLite index: -Most history tools help humans find old chats. +**Skill side** — a Claude Code skill that lets the agent search and query its own session history. The agent writes JS queries, runs them locally, answers in plain language. -Obelisk is built for agents. It exposes past work as structured data: sessions, -messages, tool calls, subagents, workflows, file history, failures, parent -chains, and human-approved markdown memories. The agent writes the query, runs -it locally, and answers in plain language. +**App side** — an Electron desktop app for humans to browse sessions, manage memories, view usage stats, and see weekly recap cards. -You don't manage history. You ask questions about past work. +Both read from the same `~/.claude/obelisk.sqlite` database. The skill indexes; the app watches and renders. -## Why Obelisk - -| Session library | Obelisk | -|---|---| -| Find an old chat | Answer a question about past work | -| Human browses snippets | Agent writes and runs a query | -| Search result list | Structured context and reasoning | -| Sessions as documents | Sessions as queryable memory | -| Good for recall | Good for investigation | - -## What you can ask +## Skill: agent-first retrieval ``` /obelisk 上次 auth bug 最后到底改了哪些文件,为什么这么改 /obelisk 这个文件最近在哪些 sessions 里被反复修改 /obelisk 找出最近失败的 tool calls,它们分别发生在哪些任务里 /obelisk 那个 review workflow 的 subagents 各自结论是什么 -/obelisk 我之前有没有试过这个方案,结果为什么放弃了 +/obelisk recap this week ``` -Anything Claude Code has done before -- sessions, tool calls, subagents, workflows -- becomes structured, queryable memory. Ask in your own words. - -## Install +### Install ```bash npx skills add tommy0103/obelisk ``` -Or manually: copy `obelisk/` into your project's `.claude/skills/`. +Or manually: copy the skill into `.claude/skills/obelisk/`. -Then in any Claude Code session: - -``` -/obelisk -``` - -First run builds the index (~5 seconds for 100 sessions). After that it rebuilds incrementally. - -### Requires - -- Node.js 22+ (uses built-in node:sqlite with FTS5) -- Claude Code with skills support. - -## How it works +### How it works ``` You ask a question @@ -86,63 +52,30 @@ Agent writes a JS query against the SQLite index ↓ Runs it via node runtime.mjs --query