What Echo puts in your project
npx echo-ui-cli initinit writes everything below, and prints one line naming each thing it added. It never edits your
source code. Two things go into files of yours: the Echo block, between <!-- echo-ui:start --> and
<!-- echo-ui:end --> in CLAUDE.md or AGENTS.md, and two hook entries in .claude/settings.json
(the check and the Stop gate).
Nothing outside those is touched. It all happens on its own, and none of it is hidden: each one is
a file you can open, and each one comes back out.
| What | Where | Why it's there | How it comes out |
|---|---|---|---|
| echo.json a file of Echo's | echo.json | Where Echo's components go in this project, and which registry they come from. add, update and check read it. | Delete it, with the Echo folder, when you remove Echo. |
| echo-lock.json a file of Echo's | echo-lock.json | What Echo installed, at which version, with a hash per file, so update can tell your edits from Echo's code and never replace yours without asking. | Delete it, with the Echo folder, when you remove Echo. |
| <your Echo folder>/echo-theme.css a file of Echo's | <your Echo folder>/echo-theme.css | The theme, built from your colour seed. Import it once from your global CSS; the components have no colour without it. | Delete it, with the Echo folder, when you remove Echo. |
| the catalog (in node_modules/.cache) a file of Echo's | node_modules/.cache/echo-ui/catalog.json | A copy of Echo's catalog, so which, docs and check answer in milliseconds and offline. add and update refresh it. | It goes with node_modules. Delete it any time: the next command fetches it again. |
| the Echo block in CLAUDE.md a marked block in a file of yours | CLAUDE.md | Echo's rules for an agent, between <!-- echo-ui:start --> and <!-- echo-ui:end -->: use Echo's components, style with var(--echo-*), the exact package names, the accessibility floor, and to run the check. Claude Code reads CLAUDE.md at the start of every session. Nothing outside the markers is touched. | npx echo-ui-cli agent off takes the block out, and deletes the file only if nothing else is in it. |
| the Echo block in AGENTS.md a marked block in a file of yours | AGENTS.md | The same block, for the agents that read AGENTS.md: Codex, Cursor, and Claude Code when there's no CLAUDE.md. It goes here too when the project has AGENTS.md, or when it has neither file. | npx echo-ui-cli agent off takes the block out, and deletes the file only if nothing else is in it. |
| the Echo block in DESIGN.md a marked block in a file of yours | DESIGN.md | This project's look in Echo's terms: the colours your seed makes, type, spacing, depth, motion, sound, and the do's and don'ts, in the sections Google's DESIGN.md format uses. Agents read it when they build a screen, not in every session. It sits between Echo's markers, so a DESIGN.md of your own keeps everything else in it. | npx echo-ui-cli agent off takes the block out, and deletes the file only if nothing else is in it. |
| the Echo rule for Cursor a file of Echo's | .cursor/rules/echo-ui.mdc | The same block, as a Cursor rule. Written only when the project uses Cursor and the block went to CLAUDE.md alone: Cursor reads AGENTS.md by itself. | npx echo-ui-cli agent off deletes it. |
| the check hook and the Stop gate in .claude/settings.json one entry in a file of yours | .claude/settings.json | Two Claude Code hooks. One runs echo-ui check on each file the agent writes or edits and hands what it finds straight back to the agent. The other, the Stop gate, runs Echo's tests (the design tests and axe) on the pages the agent changed when it tries to stop, and keeps it working until they pass (three rounds at most; it lets the agent stop when the app isn't running, and test.stop: false in echo.json turns it off). Each is one entry, merged beside any hooks already there; a settings file that isn't valid JSON is left alone. | npx echo-ui-cli agent off takes both entries out, and deletes the file only if nothing else is in it. |
| the echo-ui skill a file of Echo's | .claude/skills/echo-ui/SKILL.md | How to build a screen, add a component, fix what the check reports and update Echo, step by step. Claude Code loads it when a task needs it, so it costs nothing the rest of the time. | npx echo-ui-cli agent off deletes it. |
| the echo-design-eye skill a file of Echo's | .claude/skills/echo-design-eye/SKILL.md.claude/skills/echo-design-eye/references/echo.md | Echo's Design Eye: give your agent a moodboard, and it reads each style in it into a design foundation and a style.json this project can wear with style use. What it writes goes to your own style library (~/Documents/styles), private to you, never into the project. Its one reference is Echo's own style, written as a foundation. Claude Code loads it only when you share references. | npx echo-ui-cli agent off deletes it. |
| the echo-style-fit skill a file of Echo's | .claude/skills/echo-style-fit/SKILL.md | Echo's Style Fit: ask your agent which style the product should wear, and it profiles the product, has style fit order every style in your library and Echo's against it, reads the best of them, and argues for one; then it wears it with style use. Its decision goes to your library, next to the styles. Claude Code loads it only when the question comes up. | npx echo-ui-cli agent off deletes it. |
| .github/workflows/echo-design.yml a file of Echo's | .github/workflows/echo-design.yml | Only with init --ci: a GitHub Actions job that builds and starts the app on every pull request and runs Echo's tests (the design tests and axe) on its pages, so a screen that fails them fails the pull request; the report is kept as an artifact. Yours to edit, and never written over. | Delete the file. |
echo-ui-corea package | package.json | The one npm package Echo's components import: theme, sound, motion and touch. | Your package manager's remove, e.g. npm uninstall echo-ui-core. |
echo-ui-clia dev dependency | package.json | This CLI, as a dev dependency, so npx echo-ui-cli runs the project's own copy without downloading anything, and a hook can call it directly. | Your package manager's remove, e.g. npm uninstall echo-ui-cli. |
Taking it out
What Echo wrote for agents comes out with one command:
npx echo-ui-cli agent offIt takes the block out of CLAUDE.md and AGENTS.md, the two hook entries out of
.claude/settings.json, and deletes the skills. A file it added to is left exactly as it was before
init, and deleted only if Echo created it and nothing else was put in it since. agent on puts
it all back.
To take Echo out altogether, run agent off, delete the Echo folder, echo.json and
echo-lock.json, and remove the two packages with your package manager.
Leaving some of it out
init --skip-agent writes Echo's own files and leaves the block, DESIGN.md, the hooks and the
skills out. A
settings file that isn't valid JSON is never touched: init says so and prints the entry to paste.