GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者による説明(英語の原文)
Project memory for coding agents whose memories carry code evidence, re-checked on every recall.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"aletheia": {
"command": "npx",
"args": [
"-y",
"@firatmio/aletheia",
"serve"
]
}
}
}ターミナルでこれを実行します
claude mcp add aletheia -- npx -y @firatmio/aletheia serveプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"aletheia": {
"command": "npx",
"args": [
"-y",
"@firatmio/aletheia",
"serve"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"aletheia": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@firatmio/aletheia",
"serve"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月9日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント firatmio で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.1)がレジストリに届いたのは16 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:GitHub, Desktop Commander, Cloudflare MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Memory your coding agent can verify.
Every memory carries evidence from your code. Aletheia re-checks it on every recall,
points your agent at the exact lines, and keeps stale facts out of its context.
Quick start · How it works · Results · Reference
Coding agents forget everything between sessions, so they re-read the same files every time. Memory tools fix the forgetting, but they rank memories by similarity, and an outdated memory looks just as relevant as the fact that replaced it. The agent then builds on something that stopped being true weeks ago. A confidently wrong memory is worse than no memory.
[moved] with the new place instead of going stale.builtin_test.go:263 is computed from the files right now, so the agent opens the right lines instead of searching for them.aletheia lethe (Lethe, the river of forgetting).1. Install it in whichever way suits you. Every option gives you the same single binary:
npm install -g @firatmio/aletheia # Node 18+, any OS
go install github.com/firatmio/aletheia/cmd/aletheia@latest # Go 1.24+ scoop bucket add firatmio https://github.com/firatmio/scoop-bucket; scoop install aletheia # Windows brew install --cask firatmio/tap/aletheia # macOS, Linux
Prebuilt archives for Linux, macOS and Windows are on the releases page.
2. Connect your agent.
*Claude Code, with the plugin (recommended).* It brings the MCP server and both hooks. /aletheia:setup then initializes the project:
/plugin marketplace add firatmio/aletheia
/plugin install aletheia@aletheia /aletheia:setup
*Claude Code, without the plugin.* Set up the project and add the two hooks yourself. Recall then happens on every prompt and costs the agent nothing:
cd your-project
aletheia init --agents --claude-hooks # .aletheia/, usage notes in CLAUDE.md and AGENTS.md, hooks in .claude/settings.json aletheia hook --dry-run # what an agent would get (add a prompt to try one); changes nothing
Run --claude-hooks yourself. Agents are usually not allowed to change their own hooks, and that is by design. Don't add these hooks if the plugin is installed: it brings the same two. init notices the plugin and says so. To edit the file by hand instead, use this:
{
"hooks": { "UserPromptSubmit": [{ "hooks": [{ "type": "command", "command": "aletheia hook" }] }], "Stop": [{ "hooks": [{ "type": "command", "command": "aletheia hook" }] }] } }
*Any other agent.* Cursor, VS Code, Claude Desktop and Codex connect over MCP; agents without MCP use the CLI. See Other agents below. An MCP client configured with npx needs no install at all: {"command": "npx", "args": ["-y", "@firatmio/aletheia", "serve"]}.
An agent can also do the setup itself from the agent guide. It hands the hook step to you as that single command.
Memories live in .aletheia/memories/*.md as plain Markdown. Commit them and your team, and every agent, shares one memory that verifies itself on each machine.
Upgrading: npm update -g @firatmio/aletheia, scoop update aletheia or brew upgrade --cask aletheia. With Go, run the same go install again. Update the plugin with claude plugin update aletheia@aletheia.
aletheia.exe open through the MCP server, so the install fails with "file in use". Quit the agent first, or move the old binary aside, which Windows allows for a running exe.This works on every upgrade. It removes old copies that are no longer in use, and the random name never collides with one that is still running:
$bin = "$(go env GOPATH)\bin"
Remove-Item "$bin\aletheia-old*.exe" -ErrorAction SilentlyContinue Rename-Item "$bin\aletheia.exe" "aletheia-old-$(Get-Random).exe" go install github.com/firatmio/aletheia/cmd/aletheia@latest
We measured with headless Claude Code (Opus 5.5) on real repositories. Each task ran with and without Aletheia, and the same hidden acceptance tests judged success.
| Repository | Tasks | Cost | Also | Tasks passed |
|---|---|---|---|---|
| gohugoio/hugo, a large site generator (233k lines of Go) | 14 tasks of five kinds, one run each | −15%: −22% on seven tasks of one kind, −7% on a mix | input tokens −27%, turns −21% | 14/14, same as without |
| expr-lang/expr, a mid-size expression language | 7 tasks, two runs | −9% in both runs | code read before the first edit −48% | 14/14, same as without |
| go-chi/chi, a small, tidy router | 7 small tasks, two runs | +5% and −5%: break-even | 14/14, same as without |
Aletheia pays off where finding the right place is expensive, in mid-size and larger codebases, and most when the same kind of change comes back. Expect the mixed figure for everyday work. On a small package that an agent reads in one or two calls there is little to save. The method, the raw numbers and what did not work are in docs/dogfood-4.2.md.
Anchors
| Anchor | Holds while | Example |
|---|---|---|
symbol:PATH::NAME | the file still declares that function, method (Type.Method), type, var or const | symbol:store.go::Store.Get |
contains:PATH::REGEX | the file still matches the regular expression | contains:go.mod::^go 1\.23$ |
exists:PATH | the path still exists | exists:src/auth |
file:PATH | the file's content is unchanged (hash sealed when saved) | file:go.mod |
symbol for claims about one declaration and contains for one thing in a file. Use file only when any change should trigger a re-check.symbol and contains evidence is right now, e.g. (store.go:15-21). Go declarations get their full range from go/parser. In other languages a symbol anchor finds the declaring line by its keyword (function, class, def, fn and the like); it is not sealed, so it cannot follow a move.symbol anchor is sealed with a fingerprint of the declaration (symbol:store.go::Store.Get@3f9a…). The fingerprint ignores comments and layout.[moved: old.go → new.go] with the new lines, and verify --reseal records the new path.remember adds a sealed symbol anchor for that declaration. The contains anchor then moves with it, but only if its pattern still matches inside that declaration at the new place.contains pattern, a run of spaces matches any run of spaces or tabs, so reformatting does not stale it.exists: anchor automatically.remember says so when you save one.remember warns when a contains anchor only matches comments, since a comment can stay while the code changes.[?], ranked below verified facts, and expires after 90 days unless re-confirmed.When a memory goes stale, re-check the claim, then:
aletheia verify 3f9a1c --reseal # still true: refresh the evidence
aletheia remember "…new claim…" --anchor … --supersedes 3f9a1c # changed: replace it
--reseal refuses when a contains, exists or symbol anchor no longer holds, so a false claim cannot be quietly blessed.
Code map
aletheia map " " lists the files most relevant to a topic, each with its key declarations and their current lines:
optimizer/fold.go: fold.Visit 15-311, fold 10-13, toFloat 329-335
builtin/builtin.go:
冒頭だけを表示しています。続きはリポジトリで読めます