
Kika
io.github.amitok2由 GitHub 帳號 amitok2 發布v0.2.3更新於 Oct 1, 2026
Shared memory for client engagements: decisions with reasons, blockers, promises, what was tried.
概覽
Kika 是共享專案記憶伺服器,讓助理讀取並記錄客戶專案中的決策、阻礙、承諾與已放棄的嘗試。
- 可以做什麼
- 讀取專案記憶:取得工作階段簡報,搜尋已做的決策、阻礙、承諾與試過的做法。
- 寫入專案記憶:記錄新事實、更新既有條目並結案未結事項。
- 自動擷取對話:搭配的掛鉤會在回合結束後記錄該回合確定的內容,不需助理主動呼叫工具。
- 檢視與復原:網頁端軌跡列出掛鉤看到的每個回合,並可刪除由助理寫入的條目。
- 適用情境
- 適合在同一程式碼儲存庫或客戶專案上協作的團隊與助理,需要程式碼裡看不到的背景,例如某項決策的原因、目前阻礙、承諾了什麼與期限。也適合多人和多個助理共用同一份專案記憶的情境。
- 執行需求
- 需要存取 api.getkika.app 的遠端端點(streamable HTTP)以及 Kika 帳號。登入方式為瀏覽器 OAuth,或在 CI 與沒有瀏覽器的機器上透過 Authorization 標頭傳入 bearer 權杖。自動擷取掛鉤以 Claude Code 外掛形式提供;在 Linux 與 Windows 上建議改用標頭權杖方式。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Kika,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。
交給代理程式安裝
把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。
閱讀 https://sourceweft.com/mcp/io.github.amitok2%2Fkika/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。其他 MCP 客戶端
把它新增到你客戶端的 mcpServers 設定中。
{
"mcpServers": {
"kika": {
"type": "http",
"url": "https://api.getkika.app/mcp"
}
}
}README
Kika for Claude Code
Kika gives a project one memory that every agent and every person on it reads. What was decided and why, what is blocked, what was promised and by when, what was already tried and dropped. None of that is in the repository, and an agent cannot infer it from the code.
One install gives you both halves:
- the MCP server —
get_brief,search_memory,remember,update_memory,close_loop, so an agent can read the project's memory and add to it; and - the capture hook — which records what a turn settled without the agent having to remember to.
The hook is the part no other memory product has. A handshake that says "write things down when they matter" is advice, and a model under load ignores advice. A hook is not advice.
Install
Then /mcp, choose kika, and approve in the browser.
That is the whole install. The plugin carries both halves, so there is nothing to clone, no script to run, and no second credential: the hook reads the OAuth token Claude Code already holds for this server and keeps refreshed.
Projects create themselves the first time something worth remembering is said in a repository. There is nothing to set up per project.
With a token instead
For CI, or a machine with no browser. Get one at getkika.app/app/connect:
--scope user matters: without it the server is bound to the one project you
happened to be in. The hook reads that same header out of your MCP
configuration, so it is still one credential.
Platform note
The OAuth path is verified on macOS, where Claude Code keeps the token in the
login keychain. Elsewhere the hook looks for ~/.claude/.credentials.json
first, which may or may not be where your build stores it. If capture is silent
on Linux or Windows, use the --header form above.
For a teammate
They install the same way and sign in as themselves. What they do in their own repositories is their own memory.
To put them on a project of yours, add them at getkika.app/app/projects — the project, then People, then the email address they sign in with. They do not need an account first; the invitation waits and is claimed the first time they sign in.
From then on their checkout of that repository resolves to your project rather than a second copy of it: what they decide, you read, and every fact shows who recorded it and from which branch. Everyone on a project can read and write its memory; only the owner decides who else is on it.
Until you add them, a repository that already belongs to a project is refused rather than duplicated. The agent is told the project exists, that they are not on it, and that whoever set it up can add them.
What leaves your machine
When a finished turn looks like it settled something, the hook posts to
https://api.getkika.app/hooks/turn:
- the last assistant message (at most 8,000 characters) and the last message you typed (at most 4,000), keeping the end of each rather than the beginning
- the working directory, and
git remote get-url originfor it - the Claude Code session id
It does not send your source code, your environment, or any other conversation. Most turns are discarded on your machine before any request is made at all.
Once per project, when Kika first creates the project for a repository, it
asks for that repository's docs so the project starts with an overview rather
than an empty page. The hook then posts to https://api.getkika.app/hooks/bootstrap:
- up to 12 committed markdown files from the top two levels of the
repository (README, CLAUDE.md, AGENTS.md, architecture docs first), at most
8,000 characters each. Only files
git ls-fileslists — never untracked files, never anything under a dot-directory - the subjects and dates of the last 60 commits (at most 4,000 characters)
- the working directory, git remote and branch
This happens once per project and never again.
It reads a credential in one of four places, in this order: the Authorization
header you configured on the MCP server, the OAuth access token Claude Code
holds for this server (macOS keychain, or ~/.claude/.credentials.json),
~/.kika/token, or ~/.kika/hooks-key. It never reads a credential belonging
to any other server.
~/.kika/hooks-key exists because an OAuth access token lasts an hour and only
the agent renews it — so without it, capture stopped an hour into any session
where the agent did not happen to call Kika. While your OAuth sign-in is fresh,
the session-start hook asks for a capture-only key once per machine and saves
it there, readable only by you. The server accepts that key on the hooks and
refuses it on the MCP tools, so it cannot search or read your memory beyond the
session brief, and it cannot mint another key. It is listed at
getkika.app/app/connect as "capture only", and revoking it there works like
any key. With
none of them present, capture exits immediately and sends nothing.
What it does say: once a day, at the start of a session, if no credential is found or the server rejects the one it has, you see one line — "Kika is not signed in … nothing from this session will be remembered". Capture that is off should never look like capture with nothing to save. That check runs on your machine and sends nothing but the request it was going to make anyway.
The hook runs after your turn ends and never blocks it. It exits quietly in every path, including failure: a hook that interrupts you is a hook you disable.
Seeing and undoing what it saved
getkika.app/app/trail shows every turn the hook saw, including the ones it saved nothing from and why, and what each cost you.
Anything recorded this way is marked agent-written and unverified. It can never overwrite something from one of your meetings, it never reaches your meeting notes, and every entry is listed at getkika.app/app/activity with an Undo that removes it.
Turning it off
Remove the plugin. Removing only the MCP server (claude mcp remove kika)
leaves the hooks installed with no token to find: nothing is sent, and the
once-a-day "not signed in" line appears until the plugin is removed too.
來源:README.md,提交 2c8377a
工具
0版本歷史
2- v0.2.3最新Sep 17, 2026
- v0.2.2Sep 17, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通必需25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式必需10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分