The same calm workspace — talk, plan, build — as a real app. A signed Mac download and a TestFlight beta for iPhone & iPad.


A native Mac app, signed and notarized. Download the disk image, drag Elk to Applications, done.
Elk on iOS is in open beta through TestFlight. Install Apple’s TestFlight app, tap the invite, and you’re in.
Elk's connector lets Claude file the decisions from any working session into your workspace — automatically, so you never have to remember to “add to Elk.”
Paste this into any Claude Code chat. Claude installs the connector, teaches itself to capture at milestones, and adds a safety net that captures long sessions before context is lost.
Set up Elk capture for me. My Elk connector URL: PASTE-YOUR-CONNECTOR-URL
(If that still says PASTE-YOUR-CONNECTOR-URL, stop and ask me for it — it's in Elk for Mac → Tweaks → Elk Connector.)
1. Register the connector at user scope:
claude mcp add --transport http --scope user elk "<my connector URL>"
2. Append this to ~/.claude/CLAUDE.md (create it if missing):
## Elk capture
- When we finish a task, make a real decision, or wrap up a thread — and whenever I say "add to elk" — call the elk `capture_to_elk` tool: one-line title, 2-5 sentence summary, decisions actually made, open questions, and a few short verbatim excerpts. Quote excerpts exactly; never invent decisions. Don't ask first; confirm in one line after.
- Always set the tool's `workspace` field to the project this session is about — use the repo/folder I'm working in (the cwd's basename) or the project's name. Elk files the capture into that workspace and replies with where it landed; relay that to me so a misfile is obvious.
- If Elk answers with a question instead of filing (it wasn't sure which workspace), nothing was stored yet: relay the question and the workspace options to me, then call `capture_to_elk` again with the same content and `workspace` set to my answer.
3. Create ~/.claude/hooks/elk-stop-capture.sh, chmod +x, containing exactly:
#!/bin/bash
IN=$(cat)
printf '%s' "$IN" | grep -q '"stop_hook_active": *true' && exit 0
TP=$(printf '%s' "$IN" | sed -n 's/.*"transcript_path": *"\([^"]*\)".*/\1/p')
[ -f "$TP" ] || exit 0
SZ=$(wc -c < "$TP")
[ "$SZ" -lt 3000000 ] && exit 0
MK="$TP.elk-captured"
LAST=$(cat "$MK" 2>/dev/null || echo 0)
[ $((SZ - LAST)) -lt 1000000 ] && exit 0
echo "$SZ" > "$MK"
echo '{"decision":"block","reason":"This session is getting long. Before context is lost, call the elk capture_to_elk tool now: title, 2-5 sentence summary, decisions actually made, open questions, key verbatim excerpts. Then finish your reply."}'
exit 0
4. Merge into ~/.claude/settings.json without clobbering existing hooks:
"hooks": { "Stop": [ { "hooks": [ { "type": "command", "command": "~/.claude/hooks/elk-stop-capture.sh" } ] } ] }
5. Verify each step worked, then capture THIS conversation to Elk as a test and tell me what you filed.
You have my standing permission to send these captures to my Elk workspace.
Add the connector once, then give Claude a standing instruction so every chat captures its decisions — no per-chat setup.
I use Elk to keep a shared record of what gets decided while I work. When we finish a task, make a real decision, or wrap up a thread — and whenever I say "add to elk" — use the Elk connector's capture_to_elk tool: one-line title, 2-5 sentence summary, decisions actually made, open questions, and a few short verbatim excerpts. Set the tool's workspace field to the project this chat belongs to (the Claude Project's name, or the project we're discussing) so it files to the right Elk workspace, and tell me where it filed. If Elk responds with a question instead of filing (it wasn't sure which workspace), nothing was stored yet — ask me which workspace, then call the tool again with the same content and my answer. Quote excerpts exactly, never invent decisions, and confirm in one line after. You have my standing permission to send these captures to Elk.
The Mac build is Developer-ID signed and notarized by Apple — Gatekeeper opens it without a warning.
Sign in with your workspace and your streams, themes, and actions are already there — Mac and iOS in step.
Elk is free during the beta. Pricing comes later; for now, bring your team and put it to work.