by alexeyw
A live map beside the chat that shows what Claude Code is doing: tool calls, model steps, hooks, skills and subagents light up as they happen. Local only, in five languages.
Available after the catalog security scan passes.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
# Add to your Claude Code skills
git clone https://github.com/alexeyw/lot-mapGuides for using ai agents skills like lot-map.
See how lot-map compares with popular alternatives.
A mod for Claude Code: a live map of the work, in a pane beside the chat. Every tool call, model step, hook and skill sends a pulse from the centre to its station, so you see memory, files, shell, web and agents at work instead of reading a list of commands.

A made-up session replayed through the mod's own drawing code. Video (MP4).
At the prompt of a terminal session:
/plugin install lot-map --marketplace alexeyw/lot-map
Answer y to add the marketplace, then choose a scope. From a shell:
claude plugin install lot-map --marketplace alexeyw/lot-map
In the desktop app: click + next to the prompt box, then Plugins, Add marketplace with alexeyw/lot-map, then Add plugin.
The pane opens by itself when a session starts. In a terminal it needs at least 144 columns and draws text only; otherwise type /lot-map. Built and tested on Claude Code 2.1.321 on macOS; users report it working on Windows as well.
| Station | When |
|---|---|
| You | your messages, questions and files sent to you |
| Model | each model request, context compaction |
| Memory | Claude Code's memory folder, plus whatever you name in the options |
| Files | Read, Write, Edit, Grep, Glob, and shell commands that work on files and nothing else: they read, search, move, delete or edit in place (cat, grep, mv, sed -i, tee, find … -delete) |
| Shell | every other shell command |
| Network | web fetch and search, MCP servers, and shell commands known to reach the network: curl, gh, ssh, rsync, git push, npm install, docker pull and the like, also inside $(…) |
| Browser | browser tools |
| Agents | subagents and workflows; their own calls start from this station |
| Skills | skills and tool search |
| Hooks | settings hooks that refuse a call, ask for permission, add context or take a moment |
The shell stations go by the command's name, not by what it does: a script that opens a connection itself, such as python -c "…", shows as Shell.
A pulse flies out when something starts and returns when it ends. Refusals and errors turn red.
×3.↓ the second.opus 5.5 → fable 5.2. This also happens when a session starts on a different model from the last session in the same folder.Below the map are the current action with the context percentage, and the last 16 rows: ● running, · done, ✕ failed or blocked, ◆ a change of model. Finished calls that follow one another at one station fold into one row, marked +2 for the two it stands for besides the one named.
| At work | Subagents | A hook refuses |
|---|---|---|
![]() |
![]() |
![]() |
| A change of model | After the answer | Light colours |
|---|---|---|
![]() |
![]() |
![]() |
The install offers them on a screen. Later, use /config in a terminal or claude plugin configure, then restart the session.
| Option | Default | Meaning |
|---|---|---|
language |
en |
en, ru, es, fr or de |
coreName |
CLAUDE |
what the circle in the middle says, up to ten characters |
memoryServers |
memory |
MCP servers whose tools light Memory |
memoryCommands |
none | shell commands or scripts that light Memory; a name counts when it is the command itself or begins with it and -, _ or ., so recall also names recall-sync.py |
memorySubcommands |
none | words after a memory command that the map may show, such as add or search; without them the command goes by its own name |
memoryPaths |
none | parts of a path that make a file a memory |
memoryLabels |
none | short names for memory tools, each as tool=name |
hookRecords |
false |
turn on if a hook of yours adds memory records numbered like [#123]; they appear on Memory by number only. Such a number in the text of any hook counts, not only a memory hook's |
hookReasons |
false |
show the first line of a hook's refusal, up to 72 characters; off, the map says only which tool was stopped |
theme |
auto |
the map's colours: dark, light, or auto, which is dark on a dark surface and light on a light one |
layout |
you-top |
where you are on the map: you-top, or you-bottom, which turns the ring half a turn so that you are at the bottom and the network and the browser at the top |
For example, Russian labels and your own memory server:
echo '{"language":"ru","memoryServers":"my-memory"}' | claude plugin configure lot-map@lot-map --values-stdin
Lists are written with commas.
| Russian labels | layout set to you-bottom |
|---|---|
The mod makes no network requests, reads no files, runs no processes, calls no model and adds nothing to the conversation. Its rows live only for the session.
Like any mod that follows tool calls, it is handed every call's whole input, including command lines and the text written to files. It takes names from that and nothing else; the code that does so is classify in hooks/map.ts. A marketplace added from this repository follows its main branch, so an update brings whatever is there: read the diff before updating if that matters to you.
It asks Claude Code for one thing: how full the context window is, after each model step. Between sessions it keeps one thing, the name of the model last used in each folder, so that it can show a change. Each is stored under the folder's full path, in Claude Code's own store for the plugin.
A label holds a name, never content:
memorySubcommands;hookReasons on, because a refusal may quote what the hook found.Control characters are taken out of every label before it is drawn.
A fault on the map never reaches a tool call or a model turn.
claude plugin test .
claude plugin validate .
Words live in hooks/text.ts; a new language is one more table there and one more value of language in .claude-plugin/plugin.json.
lot-map is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by alexeyw. A live map beside the chat that shows what Claude Code is doing: tool calls, model steps, hooks, skills and subagents light up as they happen. Local only, in five languages. It has 118 GitHub stars.
lot-map's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/alexeyw/lot-map" and add it to your Claude Code skills directory (see the Installation section above).
lot-map is primarily written in TypeScript. It is open-source under alexeyw on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh lot-map against similar tools.
No comments yet. Be the first to share your thoughts!