For anyone handing a codebase to the next person
Tour DeskCodeTour walkthroughs written for one reader, with every anchor checked against your code. The checking is free.
Paste or drop the files a reader needs. Your browser numbers every line, maps each file's functions, classes and types and its entry points, routes, auth checks and error paths, and works out who the tour is for. Paste any .tour file and it checks every step against the code: missing files, lines past the end, patterns that match nothing, a ref on the base branch, and steps that talk about code 40 lines from where they open. Step through it as CodeTour will show it. Then the write run builds the tour for your reader, and the revise run reworks it on your feedback.
The code and the reader free
The page's reading free
The files
Symbols and landmarks, with their lines
The tour and its check free
Paste a .tour file - yours, a teammate's, or the write run's through its handoff. Every keystroke re-checks every step against the files above, free.
What the check found
Step through it
The tour metered
Pricing as soon as the session is ready...
Sign inThe reply could not be read. Here it is as it came back:
Caveats
Caveats
The page's check of this reply
Saved tours
How it works - and what it cannot see
The page reads files under a header line per file, the way tail -n +1 prints them; a dropped folder is read the same way, skipping dependencies, build output, lockfiles and binaries. Symbols come from declarations - functions, classes, methods, types - in the common languages, and landmarks from patterns such as a server listening, a route registered, a token checked, an exception raised. A step's description is held to its anchor through the identifiers it names in backticks: when none of them is within eight lines of where the step opens but one is defined elsewhere in the same file, the step has drifted. Patterns are run as regular expressions, the way CodeTour runs them, and the step opens on the first match.
It cannot see your repository: files you did not paste, what is on the branch named in ref, or whether a description is true about behaviour the code only implies. That is what the write and revise runs read the code for - and every reply goes back through the same check, so a guessed line, an invented function, a base-branch ref or a tour that reads like a file listing is flagged, not trusted. Tours are saved as .tours/<reader>-<focus>.tour; open the folder in VS Code with the CodeTour extension to play them.