CodeTour
CodeTour
Анимированные, управляемые LLM "объясни, как пятилетнему" туры по pull request'ам GitHub.
CodeTour — это MCP сервер в паре с локальным браузерным просмотрщиком. Клод (или любая LLM, управляющая MCP) вызывает инструменты CodeTour шаг за шагом; просмотрщик анимирует проход по pull request — дерево файлов, диффы, пульсирующие подсветки строк — пока повествование показывается в виде подписей и озвучивается через встроенный синтез речи браузера. Каждая остановка ссылается обратно на GitHub, чтобы зрители могли сами углубиться в детали.
Как это работает
Claude ──(MCP stdio)──▶ codetour ──(WebSocket)──▶ your browser
│
└──(REST)──▶ GitHub APILLM вызывает
get_pr_info/get_file_diff, чтобы прочитать PR через CodeTour, поэтому его повествование точно соответствует тому, что отображается.start_tourоткрывает просмотрщик в вашем браузере и ждет, когда вы нажмете Start (клик также включает звук).show_overviewи серия вызововshow_stepанимируют изменения. Каждый вызов блокируется до окончания озвучивания повествования, поэтому тур идет в естественном темпе.end_tourпоказывает итоговое резюме со ссылкой на PR на GitHub.
Related MCP server: Code Review MCP Server
Установка
Требуются Python 3.11+ и uv.
git clone <this repo> && cd CodeTour
uv syncЗарегистрируйте в Claude Code в области пользователя, чтобы инструменты были доступны в каждом репозитории:
claude mcp add --scope user codetour -- uv --directory /path/to/CodeTour run codetourЗатем просто попросите:
Дай мне обзорный тур по https://github.com/owner/repo/pull/123
Навык codetour
В репозитории поставляется навык Claude Code (skills/codetour/SKILL.md)
который обучает Клода мастерству хорошего тура: автоматическое определение PR текущей ветки через
gh, планирование 3–7 остановок перед открытием просмотрщика, правила стиля повествования ELI5 и как
восстановиться, когда просмотрщик закрыт. Установите его, создав ссылку (или скопировав) в ваш
личный каталог навыков:
ln -s /path/to/CodeTour/skills/codetour ~/.claude/skills/codetourС установленным навыком простая команда "tour this PR" в любом репозитории делает то, что нужно. Перезапустите сессию Claude Code после установки MCP-сервера или навыка.
Аутентификация GitHub
Публичные PR работают без аутентификации (низкий лимит запросов). Для приватных репозиториев или более высокого лимита,
CodeTour использует первый из: GITHUB_TOKEN, GH_TOKEN или сохраненный токен CLI gh
(gh auth login).
Конфигурация
Переменная окружения | По умолчанию | Значение |
|
| Порт просмотрщика (подбирает следующий, если занят) |
| не задано | Установите |
|
| Максимум измененных файлов, получаемых на PR |
|
| Максимальный размер патча на файл до усечения |
Разработка
uv run pytest # unit tests
uv run ruff check . # lint
uv run codetour --demo # web viewer only, replays a canned tour on a loopДемо-режим — это самый быстрый способ итерации по фронтенду: ему не нужен ни MCP-клиент, ни доступ к GitHub — откройте напечатанный URL, нажмите Start и смотрите готовый тур.
Инструменты MCP
Инструмент | Назначение |
| Метаданные PR + диапазоны строк ханков по файлам (вызывать первым) |
| Полный разобранный дифф для одного файла |
| Открыть просмотрщик, ждать нажатия Start |
| Карточка сводки PR, озвучивается |
| Анимированная остановка на файле/строках |
| Завершающая карточка со ссылкой на GitHub |
| Диагностика |
Available Tools
7 toolsend_tourA
Finish the tour: shows a closing summary card with a 'View on GitHub' button and speaks the summary. Blocks until spoken.
| Name | Required | Description | Default |
|---|---|---|---|
| summary | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does disclose meaningful behavior: it displays a closing card, offers a 'View on GitHub' button, speaks the summary, and blocks until spoken. This is genuinely useful, though it does not disclose post-condition behavior such as whether tour state is reset or what is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the primary purpose followed by precise behavioral detail and a blocking caveat. Zero filler; every clause earns its place, and the blocking note is correctly placed at the end where it is actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no annotations and no output schema, the description covers the main outcomes the agent needs to know: what is shown, what is spoken, and that the call blocks. The only gap is unclear guidance on what content makes a valid summary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate for the bare schema property 'summary'. It partially does: the summary is the content that appears in the closing card and is spoken aloud. This conveys the parameter's role, but it stops short of giving format or content guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Finish the tour'), then elaborates with concrete behavior: closing summary card, 'View on GitHub' button, and spoken summary. It clearly differentiates from siblings like start_tour, show_step, and tour_status by being the terminal action of the tour lifecycle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the phrase 'Finish the tour' — it is the end of the tour lifecycle, the natural counterpart to start_tour. However, the description never explicitly says when to call it versus show_overview or tour_status, nor does it state any exclusions or prerequisites, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_diffA
Return the full parsed diff for one changed file in the PR: every hunk with every line (kind add/del/ctx, old/new line numbers, text). Use this to read the actual code changes so your show_step narration is accurate.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| pr_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose the output shape (every hunk, line kinds, line numbers, text). However, it omits any behavior around errors, missing files, or side effects, though the read-only nature is implicitly clear from 'Return'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with no filler. The core output is front-loaded, followed by a practical usage tip. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description adequately explains the returned structure and the intended use case. It could mention edge cases like invalid paths or empty diffs, but the essentials are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explicitly define pr_url or path formats. It does add contextual meaning by tying them to 'one changed file in the PR', but leaves details like how to specify a path or URL unresolved.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb 'Return' and the resource: the full parsed diff for one changed file in the PR, including hunk and line details. It distinguishes itself from sibling tools like show_step and get_pr_info by focusing on reading actual code changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear usage purpose: 'Use this to read the actual code changes so your show_step narration is accurate.' This tells the agent when to call it, though it does not explicitly name alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pr_infoA
Fetch a GitHub pull request's metadata and a compact summary of every changed file. Call this FIRST, before start_tour, so your narration matches what will be displayed.
Each file includes its diff hunk ranges: {old_start, old_end, new_start, new_end}. Those are the line numbers you pass to show_step (side="new" uses new_start/new_end). Use get_file_diff to read the actual changed lines of a specific file.
| Name | Required | Description | Default |
|---|---|---|---|
| pr_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explains what is returned (metadata, compact per-file summary, diff hunk ranges) and how the output maps to show_step's line parameters. It does not discuss auth or error edge cases, but for a read-only fetch tool it gives substantial behavioral context without contradicting anything.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, then provides integration instructions and a pointer to get_file_diff. Every sentence earns its place; there is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema or annotations, the description adequately explains what the tool returns and how to consume those results with show_step and get_file_diff. It could add URL format details and error behavior, but it is largely complete for its role in the tour workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, pr_url, has no schema description (0% coverage), and the description does not compensate by explaining accepted URL formats or examples. The parameter name is suggestive, but no actual semantic guidance is added beyond the structural schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: fetching a GitHub pull request's metadata and a compact summary of every changed file. It clearly differentiates itself from siblings like get_file_diff and show_step by positioning itself as the initial information-gathering step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit sequencing is provided: 'Call this FIRST, before start_tour' and 'Use get_file_diff to read the actual changed lines of a specific file.' This tells an agent exactly when to invoke this tool and which alternative to choose for a different need.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_overviewA
Show the PR overview card (title, author, +/- stats, file count) with your narration as a spoken caption, plus optional short bullet key_points. Blocks until the narration finishes speaking. Keep narration to 1-3 short, plain-language sentences.
| Name | Required | Description | Default |
|---|---|---|---|
| narration | Yes | ||
| key_points | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It usefully discloses that the tool 'Blocks until the narration finishes speaking' and that it presents a visual card with a spoken caption. However, it does not mention side effects (e.g., whether it modifies state, requires a selected PR, works independently of a tour, or returns a value), leaving agent-relevant behavior under-specified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the intent, includes the blocking trait, and adds a concrete usage constraint in three sentences. No redundant content or filler; every sentence contributes to understanding or using the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter tool with no output schema and no annotations, the description covers the core behavior and parameter constraints. But it leaves out contextual prerequisites and interactions with sibling tour tools: whether an active PR must be loaded, whether this is a tour step, or whether it requires an active tour context. Since the sibling list suggests a tour workflow, this information is useful for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It does so by adding meaning to both parameters: 'narration' is explained as a spoken caption, with a length constraint ('1-3 short, plain-language sentences'), and 'key_points' is clarified as 'optional short bullet' content, suggesting a visual bulleted list beyond the raw schema's 'array of strings'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Show the PR overview card' with the exact fields ('title, author, +/- stats, file count'). It clearly differentiates from siblings like get_pr_info (which retrieves data) and show_step (which shows tour steps) by emphasizing the narrated spoken caption and blocking behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool vs the sibling tools. It doesn't mention when to choose show_overview over get_pr_info or show_step, and no exclusions or preconditions are provided. The only usage constraint ('Keep narration to 1-3 short, plain-language sentences') concerns content format, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_stepA
Show one tour step: selects file in the file tree, animates its diff into
view, scrolls to line_start..line_end (line numbers on the side version, as
returned by get_pr_info/get_file_diff), and pulses a highlight ("highlight") or
dims everything else ("spotlight"). The narration appears as a caption and is
spoken aloud; the call BLOCKS until speech completes, so call show_step
sequentially to pace the tour. Omit line_start/line_end to frame the whole file.
Out-of-range lines are snapped to the nearest hunk and reported in warnings.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | ||
| side | No | new | |
| style | No | highlight | |
| line_end | No | ||
| narration | Yes | ||
| line_start | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and it does so excellently. It discloses all behavioral traits: selecting in the file tree, animating diff, scrolling, pulsing/dimming, displaying and speaking narration, blocking until speech ends, snapping out-of-range lines to the nearest hunk, and reporting warnings. This is comprehensive and contradicts nothing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence adds value. It front-loads the core action, then layers behavioral details (blocking, sequential), optional parameter behavior, and edge cases. No fluff or repetition; it is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter tool with no annotations and no output schema, the description covers the action, parameter semantics, edge cases (snapping, warnings), and usage constraints (blocking, sequential). It does not explicitly mention prerequisites like an active tour or the return value, but these are implied by the tour context and the mention of warnings, making it sufficiently complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain each parameter, and it does: file (selects in tree), side (line numbers on that version), style (highlight vs spotlight), line_start/line_end (scroll range, omit for whole file, out-of-range snapping), narration (caption + speech). This fully compensates for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('show') and resource ('one tour step'), then details the exact sequence of actions: selecting a file, animating its diff, scrolling to a line range, and applying a highlight or spotlight. It clearly distinguishes itself from siblings like start_tour, show_overview, and end_tour by describing the step-level behavior within a tour.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: call sequentially to pace the tour because the call blocks until speech completes, and omit line_start/line_end to frame the whole file. It does not explicitly contrast with alternatives, but the context of being a step in a tour and the mention of blocking sequential behavior imply when it should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_tourA
Start an animated tour of the pull request. Fetches the PR, opens the viewer in the user's browser, and shows a title/start screen. Blocks up to ~30s waiting for the viewer to connect and the user to click Start (which also enables audio). Replaces any previous tour. Call get_pr_info first so you can plan your steps.
| Name | Required | Description | Default |
|---|---|---|---|
| pr_url | Yes | ||
| tour_title | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden and succeeds: it discloses side effects (opens viewer in browser, replaces previous tour, enables audio on Start), a blocking condition (~30s wait for user), and the fetch step. This is unusually transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences with no filler. Each clause carries operational information: fetch, open viewer, block, replace, and prerequisite call.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with no annotations, the description covers side effects, blocking behavior, and sequencing. It doesn't describe return values, errors, or what happens after Start, but those are likely secondary for an agent deciding whether and when to call this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only gives parameter names/types, so the description must add meaning. pr_url is implied by 'Fetches the PR,' and tour_title is loosely tied to 'shows a title/start screen,' but the description never explicitly maps tour_title to the displayed title. Coverage is adequate but not explicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Start an animated tour of the pull request.' It then details the concrete workflow (fetch PR, open viewer, show start screen), clearly distinguishing it from sibling tools like show_overview or get_pr_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage context: 'Call get_pr_info first so you can plan your steps.' This is a clear prerequisite and sequencing instruction, though it does not enumerate exclusions or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tour_statusA
Diagnostics: whether a tour is active, whether a browser viewer is connected, audio state, steps shown, and the viewer URL. Use this if a call timed out or you suspect the viewer window was closed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does well: 'Diagnostics' signals a read-only nature, and it enumerates the state it reports (active, connected, audio, steps, URL). It does not explicitly state it has no side effects, but the diagnostic framing implies non-mutation, which is sufficient for a 0-parameter status tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero filler. The diagnostic purpose and output fields are front-loaded, followed by a single targeted usage condition. Every word earns its place, and the structure makes it scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must convey what the tool returns, and it does: active state, browser connection, audio state, steps shown, and viewer URL. For a 0-parameter diagnostics tool, this covers the essential information an agent needs. It could mention that the viewer URL is only present when connected, but this is a minor omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema coverage, so there is nothing for the description to clarify about arguments. The description instead clarifies what the tool returns (the diagnostic fields), which is the relevant semantic content. Baseline 4 applies for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Diagnostics:' and specifies exactly what is reported: tour active state, browser viewer connection, audio state, steps shown, and viewer URL. This clearly distinguishes it from the action-oriented siblings (start_tour, show_step, end_tour), making its purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: 'Use this if a call timed out or you suspect the viewer window was closed.' This is concrete and actionable. It stops short of naming explicit alternatives or exclusions, but the diagnostic framing makes it obvious this is the status-check tool among action tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v0.1.0- First observed
end_tour - First observed
get_file_diff - First observed
get_pr_info - First observed
show_overview - First observed
show_step - First observed
start_tour - First observed
tour_status
TDQS
Scored across 7 tools
Each tool has a distinctly different role: fetching PR metadata, fetching file diffs, starting the tour, showing overview/step/end screens, and checking diagnostics. No two tools overlap in purpose, making selection unambiguous.
Most tools follow a clear verb_noun pattern (get_pr_info, get_file_diff, start_tour, show_overview, show_step, end_tour). 'tour_status' is the one outlier, reading as a noun phrase rather than a verb-driven action.
Seven tools is well-scoped for a PR tour workflow: two for data retrieval, four for tour progression, and one for diagnostics. Each tool serves a necessary function without redundancy.
The tool surface covers the full tour lifecycle: retrieving PR context, reading diffs, starting the tour, showing overview and steps, ending cleanly, and diagnosing state. No obvious dead ends or missing operations for the stated purpose.
Maintenance
Related MCP Connectors
Comment on AI-generated webpages; feedback flows back to your coding agent. Free, MIT, local-first.
Code intelligence for LLMs. Analyze, search, and retrieve code from any public git repository.
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Screens public GitHub repos and PRs to generate risk maps, findings, and merge-readiness signals.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceGenerates narrated video walkthroughs of git commits, staged/unstaged changes, or entire codebases with AI-powered analysis, syntax-highlighted code visualization, and text-to-speech narration.-
- AlicenseBqualityCmaintenanceConnects LLMs to GitHub and GitLab to analyze pull and merge requests for logic, security, and architectural alignment. It provides tools for fetching diffs, file contents, and project metadata, alongside guided prompts for professional code reviews.1017 npmISC
- AlicenseAqualityDmaintenanceEnables AI agents to present interactive code walkthroughs with voice narration, opening files, highlighting code, and showing inline explanations with synchronized text-to-speech.519 npmMIT

Flowcastofficial
FlicenseNot gradedqualityDmaintenanceTurn your AI coding agent into a producer of interactive, narrated walkthroughs — code, whiteboard, and 3D casts, each a single self-contained HTML file that opens in any browser. Runs locally over npx.1-