
Waypoint
io.github.STiFLeR7Published by GitHub account STiFLeR7v0.5.2Updated Oct 29, 2026
One chart of your projects across Claude Code, Codex, Gemini CLI, Copilot CLI, ChatGPT.
Overview
Waypoint keeps one shared project log across AI coding tools, letting an assistant read the chart, log a session, and report status.
- What you can do
- Read the project chart: an overview of all projects and a single project's record
- Append a log entry for a session, optionally updating Done, Next and Updated
- Check whether Waypoint is set up correctly, with states and counts only
- Build a read-only end-of-day report from today's log entries
- Use bundled prompts for orientation, logging and sending the end-of-day report
- When to use it
- Useful if you work on several projects across Claude Code, Codex, Gemini CLI, Copilot CLI or ChatGPT and want each tool to see where work stopped and what comes next. Best for people already keeping a Waypoint logbook.
- Requirements
- Runs locally over stdio as the PyPI package waypoint-mcp, launched with uvx or installed via pipx/pip; needs Python 3.11 or newer. The WAYPOINT_LOGBOOK environment variable points at the logbook folder, defaulting to the one remembered by waypoint setup. The waypoint command must be on PATH for AI tools to start it.
Installation
In SourceWeft
- Open Waypoint in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Waypoint
Waypoint keeps one project log across your AI coding tools, so you can see where work stopped and what comes next.
Website: waypoint.stifler.in
You switch between projects and between Claude Code, Codex and ChatGPT. Each tool has its own memory, but none of them knows what the others did. Waypoint gives every tool the same record per project (what it is, where you left off, what's next, what needs attention), and shows where that record has fallen behind the actual activity.
The story: each project is a voyage, each AI tool a navigator, and the logbook is the ship's log they all write to. The dashboard is the chart.
It deals with two kinds of truth:
- Facts (where and when): which project, which tool, when, the last commit. Waypoint harvests these automatically from the tools' own local history and from git.
- Meaning (what and why): what got done, what's next, what's in the way. The AI tool writes this down as a short log entry, following one shared rule.
Where the two disagree, the chart says so. A tool that worked on a project but logged nothing leaves an unlogged watch (session). That's how the chart keeps itself honest, even when a tool forgets the rule.
That's the fictional logbook in examples/logbook/: its chart shows each case. waypoint refresh also writes chart.html, the same chart as a page you open in your browser.
Get started
Requires Python 3.11 or newer; no other dependencies. The arrow-key screen is optional: install waypoint-mcp[tui] (adds Rich and prompt_toolkit) and run waypoint.
macOS / Linux
Windows (PowerShell)
waypointnot found? Its install folder isn't on PATH, and AI tools need it there too (they startwaypoint mcp). Installed with pipx: runpipx ensurepath, then open a new terminal. Installed with pip: add the scripts folder pip warned about to PATH; until thenpython -m waypoint …(Windows:py -m waypoint …) runs it with that same Python.- The screen (
pipx install "waypoint-mcp[tui]"):waypoint setupwalks through logbook, roots, projects and AI tools, shows every change in a Review and writes nothing before Apply;waypointalone then manages projects (archive, restore, remove, ignore, track) and tools (connect, disconnect, fix drift) and shows status. Keys: ↑↓ move, Space toggle, Enter next, ← back,/search, Esc quit. Every action is also a plain command; without the extra, or with anysetupflag, you get numbered prompts.NO_COLORis honoured. setupshows every file it would change and asks once. It remembers the logbook, so later commands need no--logbook. It never edits your ownCLAUDE.mdorAGENTS.mdtext: it adds Waypoint's own file or a marked block, andwaypoint rules --uninstallremoves exactly those.- Make the logbook a private git repo, then
waypoint refresh --pushpulls, redraws, commits only logbook data, and pushes. - From a clone of this repo:
python -m pip install -e .
Who's aboard
Automatic session history (which project, which tool, when) comes from Claude Code and Codex only. The other tools follow the rule and can use the MCP tools, but their sessions don't show up on their own.
- The rule tells the tool to add a log entry after meaningful work. The local MCP server (
waypoint mcp, stdio) gives it five tools:take_fix(the overview),read_chart(one project),log_watch(append one log entry, with the tool's own id, under a lock; withdone/nextit also updates Done, Next and Updated in Now),status(whether Waypoint is set up right: states and counts only, no paths), andeod_report(today's end-of-day email, built and read-only). It also offers three prompts (slash commands in Claude Code, as/mcp__waypoint__<name>, and Gemini CLI, as/<name>):where_am_i,log_thisandsend_eod. waypoint connect <cli>wires one CLI at any time, for every project. Add--project <repo>(repeatable) to wire only that repo: the rule goes into the repo (an import, a link to the logbook's rule, or a copied block) and the MCP entry is scoped to it; files Waypoint creates there stay out of git through.git/info/exclude.waypoint disconnect <cli> [--project <repo>]removes only what Waypoint added.- MCP servers are registered through each CLI's own
mcp addcommand where it has one (Codex and Copilot CLI per repo: Waypoint edits their repo file). If another server already uses the namewaypoint, Waypoint registers aswaypoint-local;--no-mcpinstalls only the rule. For Codex, Waypoint also offers to add the logbook to its sandbox'swritable_roots(--no-writable-rootskips it). waypoint rulesreports each tool's rule: in sync, drifted, missing, or shadowed (Codex reads anAGENTS.override.mdinstead).- Known limits: Claude Code deletes transcripts after 30 days by default. The Claude Code and Codex history formats are unofficial; the chart's source health says when a reader breaks.
The plugin: hooks that remind
A rule asks the agent to log; the plugin's hooks remind it. At session start the agent sees the project's Now and newest log entry; at the end of a turn where the repo changed and the project file didn't, it's asked once to log (or to say there's nothing to log). The hooks only remind: the agent still writes the entry.
Install Waypoint first (pipx install waypoint-mcp, so waypoint is on PATH), run waypoint setup --no-mcp (or, after waypoint setup, waypoint connect <cli> --plugin, which removes the separate MCP entry setup made), then:
If you wrote Waypoint hooks into a tool's own settings by hand, remove them once the plugin is installed, or the reminder can fire twice.
Under --tool auto the hook tells tools apart by the plugin environment (GEMINI_SESSION_ID, COPILOT_PLUGIN_ROOT, PLUGIN_ROOT, CLAUDE_PLUGIN_ROOT); don't set those globally.
The plugin brings the MCP server too, so waypoint connect <cli> --plugin removes Waypoint's own separate MCP entry. waypoint status shows when each tool's hooks last ran. Turn parts off in waypoint.toml: [hooks] context = false, nudge = false, or quiet = ["project"].
End-of-day email
Optional. At the end of the day, ask your AI tool to send the day's report: type /mcp__waypoint__send_eod in Claude Code (/mcp__waypoint-local__send_eod if Waypoint is registered as waypoint-local) or /send_eod in Gemini CLI, or just say "send my EoD". Waypoint builds the email from your logbook (eod_report): a dark, email-safe HTML page with a plain-text twin, the Waypoint mark attached, and every log entry dated today. Your AI tool sends exactly that through AgentMail, which you connect once. Waypoint itself sends nothing and never sees your inbox.
waypoint setupcan ask for your address (default No;--yesnever asks), or runwaypoint email --to [email protected]. It is kept in one local file;waypoint email --forgetdeletes it.waypoint emailprints the AgentMail steps for each AI tool it finds, and the address it remembers.- ChatGPT: type "send my EoD" in a chat that has both the Waypoint beacon and AgentMail apps. Using both apps in one chat is not yet confirmed.
- Attention lines are never in the email; Waypoint leaves them out itself. See Privacy.
Reading the chart
Waypoint never changes a project's Status, never archives, and never writes a log entry on its own: it flags, and you decide.
What the signals mean
- Activity means a tool touched the project (a session, a commit or a log entry). It doesn't mean work got done.
- Unlogged sessions are Claude Code and Codex sessions from the day after the newest log entry onward. Log entries carry a date, not a time, so work later on the same day as an entry counts as logged.
- Now behind log means the project's
## Nowwas last updated (its- Updated:date) before the newest log entry, so Where you left off and Next may be out of date. Projects without anUpdatedline never show it;log_watchsets it when you passdone/next. - A log entry records what someone wrote down. It doesn't verify the code.
- Available context isn't proof that an agent read it.
- Freshness:
chart.htmlandDASHBOARD.mdare snapshots from the lastwaypoint refresh. The local MCP server reads the logbook live (AI activity is cached for up to 30 seconds). The beacon's dashboard fields are as of the last push; its log entries are read live.
Privacy
- Nothing leaves the machine on its own. The engine has no listener, sends no network requests, and keeps no telemetry.
--pushruns git against the remote you configured. - The local MCP server answers only the AI tool that started it. That tool sends the results to its model provider, as it does with anything it reads. Results hold project names, statuses, Summary, Done, Next and recent log entries. Attention lines are left out unless
waypoint.tomlsets[mcp] include_attention = true. Session titles, file paths, untracked folders and the feed are never returned. - The end-of-day email is sent by your AI tool, only when you ask, through AgentMail (a third party). The address stays in one local file and is given only to the tool that runs
send_eod. Details:docs/PRIVACY.md. - Log text is free text: what you or your tools write there goes wherever those results go. Returned text is data for the tool, never instructions.
The three hulls
They're never mixed: the engine ships, and the logbook stays yours.
Raise the beacon
ChatGPT keeps no local history and can't start a local server. The beacon (beacon/, advanced) is a remote MCP server you host on Cloudflare Workers behind GitHub OAuth, answering only to your GitHub account. take_fix and read_chart read the chart, show_chart shows it as a card inside ChatGPT and Claude (MCP Apps); log_watch appends one chatgpt log entry to the logbook repo. Setup takes a Cloudflare account, a GitHub OAuth app and a fine-grained token: beacon/README.md. Without it, paste a ChatGPT summary into the project's file as a chatgpt entry.
Spec
The logbook format, the rule, the chart's JSON and every access contract are in docs/LOGBOOK-SPEC.md (v1.5). The story's glossary and voice are in docs/STORY.md.
Development
Design decisions are in docs/decisions/; the release plan is docs/release/R0-SCOPE.md.
Source: README.md at commit 711e98c
Tools
0Version history
3- v0.5.2LatestOct 29, 2026
- v0.5.0Oct 22, 2026
- v0.4.0Oct 19, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
