Skip to content

Narnia

Narnia logo

Narnia is a single ASP.NET Core app — both an MCP server and a local web UI — for browsing your GitHub Copilot CLI session history. It solves a real pain point: when Windows forces a restart (or any machine restarts), all active Copilot sessions disappear. Narnia lets you search, inspect, and resume sessions without losing context.

Use the star control in any session view to favorite important sessions. Favorite state is shared across the UI, can be filtered or sorted on the Sessions page, and has a dedicated Favorites page.

Layouts persist several Collection windows as one monitor-aware arrangement. Runtime supplies the current HWND geometry for capture, while Collections remain independently launchable.

Table columns can be resized by dragging the separator at the right edge of a header or by focusing it and using the arrow keys. Widths are stored in the browser for each table; double-click a separator or press Escape to restore that column's default width.

The Storage page measures local session-state disk usage, growth, staleness, and cleanup safety. The previous recorded-path search remains available as a secondary file-activity audit. Session detail pages can recover incompatible history in place by retaining the same session ID and folder while Copilot reseeds only the active event stream. The Runtime area combines recoverable Windows Terminal observations with live process diagnostics. Its Processes view maps Copilot sessions to Copilot, shell, and Windows Terminal PIDs, with sampled CPU, private memory, and expandable child-process attribution.

The supported prebuilt release is Windows x64. Narnia's defining recovery, scheduling, autostart, and terminal-launch features integrate with Windows Terminal, WMI, and Windows Task Scheduler.

MCP Tools

Narnia exposes 27 tools over one shared HTTP endpoint (/mcp): eight for session history, three for broken-session recovery, four for local session storage, eight for managing scheduled jobs, and four for file-based schedule portability.

Session History

Tool Description
list_recent_sessions List the most recently updated sessions
search_sessions Ranked full-text search across session content
get_session_details Get full metadata and statistics for a session
get_session_checkpoints Retrieve all checkpoints with structured content
get_session_turns Paginated conversation turn history
get_session_workspace Workspace metadata and session artifact files
list_sessions_by_repository Filter by exact effective remote repository
list_sessions_by_cwd Filter by exact working directory

Session Storage

Tool Description
get_session_storage_overview Cached local storage totals and largest sessions
scan_session_storage Queue a metadata-only background scan
preview_local_session_cleanup Dry-run cleanup safety and reclaim estimates
delete_local_sessions Delete validated local session data through Copilot SDK

Broken Session Recovery

Tool Description
preview_session_migration Inspect compatibility and recoverable context
migrate_broken_session Reseed the same session ID and folder
get_session_recovery_packet Read exact archived recovery context in chunks

Git Worktrees

Tool Description
get_session_worktrees List a session's worktrees and flag branch-override mismatches

Scheduled Jobs

Tool Description
list_schedules All cataloged scheduled jobs joined to live task status
get_schedule A single scheduled job's full catalog entry by id
get_schedule_log Read the latest run log and whether the task is still running
create_schedule Create a scheduled job and (by default) register its task
update_schedule Replace a scheduled job's definition and re-register it
set_schedule_enabled Enable/disable a scheduled job's task
run_schedule_now Start a scheduled job's task immediately
delete_schedule Remove a scheduled job's task, wrapper, and catalog entry
export_schedule_package Export selected jobs for transfer or sharing
build_schedule_package Package selected non-Narnia task definitions
preview_schedule_package Inspect destination bindings, dependencies, and conflicts
import_schedule_package Import an accepted preview as disabled jobs

Why It Exists

Copilot CLI sessions accumulate rich context — checkpoints, conversation history, workspace artifacts, file change records. But a forced machine restart wipes all active sessions from memory. There was no built-in way to quickly answer "which session was I using for project X?" or "what was I doing yesterday in the macerus repo?"

Narnia indexes your local ~/.copilot/session-store.db and session-state folder, making that history searchable and browsable — both from the terminal (via MCP) and from a local web interface.

About

Built by Nick Cosentino — Dev Leader. Nick writes about .NET, C#, software design, and developer tooling at devleader.ca.