本文へ移動
cccskills
無料GitHub で公開

carto

Open the Session Cartographer Explorer web UI for visual browsing of Claude Code and Codex session history.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md8.7 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Carto

Launch the Explorer web app for the human to browse session history visually.

The Explorer reads the same shared corpus as /remember, so it shows both Claude Code and Codex sessions — roughly half this corpus is Codex. Sessions, search results and timeline cards carry an agent badge, and the facet bar has an agent dimension (?fa=codex in the URL) for narrowing to one producer. This skill runs from either agent; nothing about it is Claude-specific.

Resolve ROOT from CARTOGRAPHER_ROOT, CLAUDE_PLUGIN_ROOT, or PLUGIN_ROOT. If none is set, derive the plugin root from this skill's reported base directory (../.. from skills/carto); use the conventional checkout only as a legacy fallback.

Turn on Turbo where it is cheap

The Explorer's search and memory views are served by Turbo. Before launching, let the controller decide from this machine's RAM:

ROOT="${CARTOGRAPHER_ROOT:-${CLAUDE_PLUGIN_ROOT:-${PLUGIN_ROOT:-$HOME/Documents/dev/session-cartographer}}}"
node "$ROOT/scripts/cartographer-turbo.js" enable --if-recommended

Report the action in one line, with plan.estimate_mb and plan.total_ram_gb:

  • enabled — 16 GB+ RAM and the corpus fits in 8% of it. Say Turbo is now on for Claude Code and Codex, roughly how much memory it holds, and that /turbo disable turns it off.
  • already_enabled — say nothing unless asked.
  • ask — the machine has under 16 GB, or the corpus would take over 8% of RAM. Do not enable it. Mention the estimate and that /turbo enable turns it on; on machines under 16 GB it then exits after 30 idle minutes to give the memory back. Launch the Explorer either way.

Usage

ROOT="${CARTOGRAPHER_ROOT:-${CLAUDE_PLUGIN_ROOT:-${PLUGIN_ROOT:-$HOME/Documents/dev/session-cartographer}}}"
cd "$ROOT/explorer" && npm run dev &
sleep 3
open "http://127.0.0.1:2527/"

If the user provides a query, open with it pre-filled:

ROOT="${CARTOGRAPHER_ROOT:-${CLAUDE_PLUGIN_ROOT:-${PLUGIN_ROOT:-$HOME/Documents/dev/session-cartographer}}}"
cd "$ROOT/explorer" && npm run dev &
sleep 3
open "http://127.0.0.1:2527/?q=<query>"

The Explorer is a tool for the human, not the agent. Start it, open the browser, and tell the user it's ready.

open is macOS. On Linux use xdg-open, or just print the URL and let the user click it — never block on the browser launching.

Transcripts resolve across both providers. Codex archives a finished session (~/.codex/sessions/... → ~/.codex/archived_sessions/), so a recorded path goes stale while the data is still on disk; the transcript endpoints run the scripts/resolve-transcript.sh ladder before reporting anything missing. If the UI still says a transcript is unavailable, that is a real absence, not an archive move.

The UI host serves timeline, search, sessions, and transcripts directly. It does not need a second API process or require stopping Turbo. Verify a normal Explorer endpoint as well as the memory status before reporting that the whole app works.

For the working-memory visual or Turbo entry point, start only the UI host:

cd "$ROOT/explorer" && npm run memory &
sleep 3
open "http://127.0.0.1:2527/memory"

All tabs remain reachable while Turbo is off. The memory page's explicit start/enable action uses the shared managed controller. A running backend with the memory API opens directly; an owned older backend offers Refresh Turbo. Do not start another Explorer API process on Turbo's occupied port for this view.

Deep links into Memory (share with the operator)

The Memory Desk is permalink-first: every state is a URL, the page's Copy link button emits the canonical form, and reload / Back / Forward restore the same level. An agent that wants a human to look at a session, a file review, or a comparison should hand over a URL, not a description. The grammar below is normalizeMemoryRoute() in explorer/src/components/memory-route.js; the builder is memoryHref(). Defaults are omitted from canonical links, unknown values fall back to the default rather than erroring, so a bad link opens the live field silently. Check the value list before trusting a link.

Base: http://127.0.0.1:2527/memory (loopback, no auth; only meaningful on the machine running the Explorer).

ParameterValuesNotes
sessionsession id, [\w-]{1,256}Opens the thread: span, observed-active time, edited files, observations, Read conversation, Copy resume command. The agent's own id is CLAUDE_CODE_SESSION_ID (chain: CARTOGRAPHER_SESSION_ID → CLAUDE_SESSION_ID → CLAUDE_CODE_SESSION_ID → CODEX_SESSION_ID).
fileURL-encoded absolute pathRequires session. Resolves only to an existing file inside the corpus root — $CARTOGRAPHER_DEV_DIR, the directory holding the five JSONL logs (default ~/Documents/dev; see docs/SETUP.md) — that the session has recorded edit evidence for. A file outside the root, or an edit the hook logged as Ran: rather than Modified:, renders "not recorded as edited" instead of a diff.
reviewfile, changesOnly with file. changes is the Git diff bounded by the session's commits (never HEAD); omitted shows the file inside its session.
diffunifiedSplit is the default and is omitted.
viewfield, wake, compareWhich panel is primary.
x, yx: spanMs, activeMs; y: output, total, edit, files, research, commit, eventsCompare axes.
hoursinteger 1–2160; the UI offers 1, 6, 24, 72, 168, 720, 2160Window length. Default 24.
at, endISO-8601 Z timestamp or 13-digit epoch msat is the replay cursor, end the window end (defaults to at). at is clamped into [end − hours, end]. Omit both for Live.
qtext ≤ 500 charsThe desk's local find.
filterall, flight, changed, landedThread list filter.
catchuphour, day, returnCatch-up scope. checkpoint=<time> pins the return point.
focuschartsOverview is the default.
kindmdArtifacts depth: documents only.
panelscomma list from field,wake,compareWhich panels are shown; all three is the default and is omitted.
brushcomma list of session ids, ≤ 100Highlighted sessions in the field.
camx,y,scale, scale 0.4–8Field camera. Identity is omitted.
offset, sortintegersThread-list paging.
surfaceactivity, recall, dayResults (Tasks/Files) is the default. recall lists every /remember call in the window, grouped by session, with calls that recorded no session under Unattributed. day is the day digest (session-digest.js --day): one local calendar day by project, every commit checked against git.
dayYYYY-MM-DDWith surface=day. The reader's local date; omitted, the view shows the day the window ends in. Picking a day also sets from/through to its local midnights, so a shared day link carries both.
callcall id, [\w.:-]{1,128}Expands that call's ranked results: each row's served rank, a marked used marker when a --touch joined it exactly, and a fixed-window link to the episode it came from. With session, the task's own Recall section expands it too.

Recipes:

BASE="http://127.0.0.1:2527/memory"
SID="${CARTOGRAPHER_SESSION_ID:-${CLAUDE_SESSION_ID:-${CLAUDE_CODE_SESSION_ID:-$CODEX_SESSION_ID}}}"
# This session's thread
echo "$BASE?session=$SID"
# A file this session edited, opened on its bounded diff
FILE=$(python3 -c 'import urllib.parse,sys;print(urllib.parse.quote(sys.argv[1],safe=""))' "${CARTOGRAPHER_DEV_DIR:-$HOME/Documents/dev}/repo/file.js")
echo "$BASE?session=$SID&file=$FILE&review=changes"
# Compare active time against commits, this session selected
echo "$BASE?view=compare&x=activeMs&y=commit&session=$SID"
# A 6-hour window ending at a moment, replayed rather than live
echo "$BASE?hours=6&at=2026-09-13T22:00:00Z"
# The day's recall searches, one call's results expanded
echo "$BASE?surface=recall&call=call-20260926T134113-60435"
# One calendar day by project, commits checked against git (PDT midnights shown)
echo "$BASE?surface=day&day=2026-09-26&from=2026-09-26T07:00:00Z&through=2026-09-27T07:00:00Z"

Before handing a link to the operator, confirm the host is up (curl -s -o /dev/null -w '%{http_code}' "$BASE" → 200); if it is not, start it with the npm run memory block above. Older session links reopen the session's last recorded 24-hour window after leaving the live field. File links show the current local file, not a historical snapshot.

Examples

/carto
/carto shader

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

focus

無料

Retired. Project orientation moved to the remember skill (`/remember --project <name>` with no query). Use remember instead.

日本語の概要は準備中です。原文の説明を表示しています。

andyed/session-cartographer82026年10月8日 更新

Bring past diagnoses to a bug before fixing it, record the new root-cause hypothesis, and close it as confirmed or refuted once the fix is verified. Use when a bug could come from more than one layer, or looks like something seen before.

日本語の概要は準備中です。原文の説明を表示しています。

andyed/session-cartographer82026年10月8日 更新

remember

無料

Recall past work across Claude Code and Codex sessions. Finds decisions, research, fixes, and conversations by intent; with only a project and no question, orients on that project's recent state.

日本語の概要は準備中です。原文の説明を表示しています。

andyed/session-cartographer82026年10月8日 更新

setup

無料

Diagnose or enable Session Cartographer semantic search in Codex, including least-privilege localhost access to local Qdrant and the embedding server. Use when setup, Qdrant health, localhost reachability, sandbox network denial, or semantic indexing is in question.

日本語の概要は準備中です。原文の説明を表示しています。

andyed/session-cartographer82026年10月8日 更新

standup

無料

Brief on concurrent sessions — who else is working, in which repos, on which files, and what landed underneath you. Use when a commit appears that you did not make, before touching a shared file, or when orienting mid-task in a busy workspace.

日本語の概要は準備中です。原文の説明を表示しています。

andyed/session-cartographer82026年10月8日 更新

trustmap

無料

Derive or update the auto mode `autoMode.environment` block from the event corpus — which repos, hosts, buckets, and CLIs your work actually touches.

日本語の概要は準備中です。原文の説明を表示しています。

andyed/session-cartographer82026年10月8日 更新

andyed のスキルをすべて見る

このスキルの問題を報告する