Learn-skills.dev codewalk
Install, use, and manage CodeWalk — a macOS app + CLI for interactive visual code walkthroughs. Use this skill whenever the user mentions CodeWalk, codewalk, code walkthrough, visual code explanation, code presentation, code tour, or wants to visually walk through code with animations and highlights. Also trigger when the user says things like '코드를 가르쳐줘', '코드 설명을 눈으로 보여줘', 'UI로 보여줘', 'show me the code visually', 'teach me this code', 'walk me through', or any request to explain code in a visual/interactive way rather than plain text. Also use when the user wants to install, uninstall, update, or troubleshoot CodeWalk, or when they want to create walkthrough JSON files for code explanation.
git clone https://github.com/NeverSight/learn-skills.dev
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeverSight/learn-skills.dev "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/skills-md/ai-hand/skills/codewalk" ~/.claude/skills/neversight-learn-skills-dev-codewalk && rm -rf "$T"
data/skills-md/ai-hand/skills/codewalk/SKILL.mdCodeWalk
CodeWalk is a macOS native app paired with a CLI. The GUI displays code with interactive walkthrough animations (highlights, annotations, scrolling, file switching). The CLI (
codewalk) controls the app over a local Unix socket, making it ideal for LLM-driven code explanations.
Installation
CodeWalk requires macOS 13+ (Ventura or newer) and python3.
Option A: One-line installer (recommended)
curl -fsSL https://raw.githubusercontent.com/ai-hand/codewalk-dist/main/install.sh | sh
This downloads the latest release, installs
CodeWalk.app into /Applications (or ~/Applications if /Applications is not writable), and symlinks the codewalk CLI into your PATH.
The installer chooses the CLI symlink location in this priority order:
(Apple Silicon default)/opt/homebrew/bin/codewalk
(Intel Mac default)/usr/local/bin/codewalk
(fallback)~/.local/bin/codewalk
You can override locations with environment variables:
CODEWALK_APP_ROOT=~/MyApps CODEWALK_CLI_LINK=~/bin/codewalk \ curl -fsSL https://raw.githubusercontent.com/ai-hand/codewalk-dist/main/install.sh | sh
Option B: Homebrew
brew tap ai-hand/codewalk brew install --cask codewalk
Verify installation
After installing, confirm it works:
codewalk # Should print usage/help text codewalk open . # Opens a session for the current directory (launches the app if needed) codewalk list # Should show the open session as JSON
If
codewalk is not found, ensure the symlink directory is in your $PATH. For ~/.local/bin:
export PATH="$HOME/.local/bin:$PATH"
Uninstallation
If installed via Homebrew
brew uninstall --cask codewalk
This also removes
~/.codewalk state data via the cask's zap directive.
If installed via curl installer or manually
Run these three steps:
# 1. Remove the app rm -rf /Applications/CodeWalk.app # or ~/Applications/CodeWalk.app # 2. Remove the CLI symlink rm -f /opt/homebrew/bin/codewalk # or /usr/local/bin/codewalk or ~/.local/bin/codewalk # 3. Remove state data rm -rf ~/.codewalk
To find the exact symlink location:
which codewalk
CLI Commands
All commands communicate with the running GUI app via a Unix domain socket at
~/.codewalk/codewalk.sock. If the app is not running, codewalk open will launch it automatically.
All responses are JSON with pretty-printed output and sorted keys.
open — Start or reuse a project session
codewalk open /absolute/path/to/project
Returns:
{ "session_id": "cw_abc12345", "project_path": "/absolute/path/to/project", "reused": false }
The path must be absolute. If a session already exists for that path, it is reused (
"reused": true).
list — Show all open sessions
codewalk list
status — Get session state
codewalk status --session <SESSION_ID>
If only one session exists,
--session can be omitted.
read — Read code from a session's project
codewalk read --session <SESSION_ID> --path relative/file.py codewalk read --session <SESSION_ID> --path relative/file.py --lines 10-40
--path is relative to the project root. --lines selects a range (inclusive).
run — Execute a walkthrough
From a file:
codewalk run --session <SESSION_ID> walkthrough.json
From stdin:
cat walkthrough.json | codewalk run --session <SESSION_ID> --stdin
Or inline:
printf '%s' '{"version":2,"title":"Demo","steps":[]}' | codewalk run --session <SESSION_ID> --stdin
reset — Reset a session to initial state
codewalk reset --session <SESSION_ID>
close — Close sessions
codewalk close --session <SESSION_ID> # Close one session codewalk close --all # Close all sessions
quit — Exit the app entirely
codewalk quit
Session Rules
- Sessions are identified by IDs in the format
+ 8-char hex (e.g.,cw_
).cw_abc12345
creates a new session or reuses an existing one for the same path.codewalk open <path>- When only one session exists,
is optional for all commands.--session - When multiple sessions exist,
is required.--session <SESSION_ID>
ends a specific session.close
exits the entire app.quit
Creating Walkthroughs
Walkthroughs are JSON files (version 2) that describe a sequence of steps. Each step has a
message (the narration text) and actions (visual effects applied to the code viewer).
Walkthrough JSON structure
{ "version": 2, "title": "Walkthrough title", "character": { "name": "Claude", "avatar": "default", "style": "friendly" }, "theme": "rpg-classic", "settings": { "scroll_duration_ms": 500, "highlight_fade_in_ms": 220, "typing_speed": "normal", "auto_clear": true, "scroll_position": "top-third" }, "steps": [ { "message": "Let me show you how this works.", "actions": [ { "type": "switch_file", "file": "src/main.py", "transition": "auto" }, { "type": "scroll_to", "line": 12, "position": "top-third" }, { "type": "highlight", "lines": [12, 24], "color": "info" }, { "type": "annotate", "line": 15, "placement": "below", "color": "info", "text": "Entry point" } ] } ] }
Only
version, title, and steps are required. character, theme, and settings are optional.
Action types
| Action | Required fields | Optional fields | Purpose |
|---|---|---|---|
| | | Switch the displayed file |
| | | Jump to a line number |
| (array) | | Highlight specific lines |
| , , | | Highlight a specific token within a line |
| (array) | | Dim lines (de-emphasize) |
| (array) | | Collapse code sections |
| (array) | , | Underline specific lines |
| , | , | Add a text annotation near a line |
| — | — | Remove all visual effects |
Colors:
"info", "warning", "error", or theme-defined values.
Placements (annotate): "above", "below", "inline".
Positions (scroll_to): "top", "center", "top-third".
Transitions (switch_file): "auto", "instant".
Best practices for walkthroughs
- Aim for 4-8 steps for a focused explanation. Fewer for simple topics, more for complex ones.
- Use
only when switching to a different file — avoid unnecessary file switches.switch_file - Within the same file, use
+scroll_to
+highlight
to guide the reader.annotate - Keep
text conversational and concise. The visual actions carry most of the explanation.message - Use
between conceptually distinct sections to avoid visual clutter.clear - Use
to de-emphasize boilerplate when focusing on the important parts.dim
Recommended workflow for LLMs
When a user asks you to explain code visually with CodeWalk:
- Open the project:
codewalk open /absolute/path - Read the relevant files:
to understand the codecodewalk read --session <ID> --path file.py - Generate a walkthrough JSON following the structure above
- Run it: pipe the JSON to
or save to a file firstcodewalk run --session <ID> --stdin - Follow up: use
andstatus
for any further questionsread
Troubleshooting
| Problem | Solution |
|---|---|
| Check . Ensure symlink dir is in . Re-run installer if needed. |
fails | Make sure the path is absolute. Check if the app is installed: |
| Socket connection refused | The app may not be running. Run then retry. |
| Multiple sessions error | Pass explicitly. Use to see active sessions. |
| Walkthrough fails to load | Validate the JSON. Ensure is and action values are valid. |
| Gatekeeper blocks the app | Run to clear quarantine attributes. |
Updating
Curl installer
Just re-run the install command — it replaces the existing installation:
curl -fsSL https://raw.githubusercontent.com/ai-hand/codewalk-dist/main/install.sh | sh
Homebrew
brew upgrade --cask codewalk
State and data locations
| Path | Purpose |
|---|---|
| The app bundle (GUI + CLI binary) |
| All runtime state |
| Unix domain socket for CLI-app communication |
| Persisted session metadata |
| Loaded walkthrough data per session |