Borrowing it
Nothing to install: this file belongs to vuejs-ai/vue-tui. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/vuejs-ai/vue-tui/main/AGENTS.mdgit clone --depth 1 https://github.com/vuejs-ai/vue-tuiWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/vuejs-ai/vue-tui/agents-md)<a href="https://agentmods.dev/instructions/vuejs-ai/vue-tui/agents-md"><img src="https://agentmods.dev/badge/instructions/vuejs-ai/vue-tui/agents-md/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/vuejs-ai/vue-tui/agents-md"><img src="https://agentmods.dev/badge/instructions/vuejs-ai/vue-tui/agents-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.03548 | $0.03548 |
| Opus 5 | $0.01774 | $0.01774 |
| Sonnet 5 | $0.00710 | $0.00710 |
| Haiku 4.5 | $0.00355 | $0.00355 |
Grade A, and why
vue-tui AGENTS.md scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
- **Test files run in parallel (`fileParallelism: true`), but tests WITHIN a file run serially.** We deliberately do NOT set `sequence.concurrent`: many render tests assert timing-sensitive counts driven by the renderer' How it starts
The opening of the file, as written. The whole thing — 102 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Common Pitfalls & Best Practices
- AGENTS.md is the source of truth. CLAUDE.md is a symlink to it.
- Always use Vue's
shallowRefoverrefby default. Usingrefrequires a solid justification and a code comment explaining why deep reactivity is needed. - Always use
defineComponent()to define components. Never use bare{ setup() {} }objects — they lack component scope, soinject,watch, andonScopeDisposewon't work correctly. - Vue SFCs must use
<script setup>unless there's an explicit reason not to. - When passing function-valued props into composables, do not pass a one-time prop value
like
useInput(props.onInput). Pass a live source withtoRef(props, "onInput"), or pass a wrapper closure that readsprops.onInput(...)at event time. For composable APIs that accept function handlers, preferMaybeRef<Handler>+unref()overMaybeRefOrGetter<Handler>: handler functions and getter functions are ambiguous. - For ordinary Vue UI, start with template syntax. Use JSX/TSX when it makes test fixtures or highly dynamic structures clearer, and reserve
h()for renderer internals or genuinely programmatic vnode construction where template/JSX would be the wrong tool. - Prefer kebab-case for new file names, including Vue SFCs and JSX/TSX files. Keep local consistency when touching existing areas, and do not rename existing files only for casing unless the task is explicitly about naming.
- When code must deviate from normal/idiomatic style because the situation genuinely requires it (e.g. a control-character regex in a terminal parser, a deliberate string code-point spread, a lint rule suppressed for a justified reason), add a comment explaining why it has to be written that way. Don't silence a linter or write surprising code without a note — the next reader should not have to guess whether it's intentional.
- Bug fixes must follow test-first: write a failing test that reproduces the bug, then fix the code and verify the test passes.
- Runtime behavior is proved by end-to-end and integration tests; unit tests are supplementary. Never change internal code, or add code to it, for the sake of a unit test. Vouched in Architecture decisions.
- Tests must simulate the output capability they assert. Ordinary Runtime and
@vue-tui/testingtests select the publiccoloroption instead of mutating process color variables; focused Runtime unit tests pass an internal color capability. Resolver tests may modelFORCE_COLOR/NO_COLORprecedence directly, and PTY tests exercise automatic detection against a real TTY. A spawned tool whose own CLI color behavior is in scope may use one deliberate color-control state, but must never setNO_COLORtogether withFORCE_COLOR. - When debugging color/ANSI output in a non-TTY shell, remove
NO_COLORand useFORCE_COLOR=3for that command. To debug suppression, removeFORCE_COLORand use non-emptyNO_COLOR. Never encode “unset” as an empty string in shared test configuration. - A package's
src/contains build inputs only. Put tests, type-test fixtures, and other test-only inputs under that package'stests/tree. Usetests, never a singulartestdirectory. - Keep source-owned tests under
packages/*/tests. Cross-package Runtime behavior belongs in the privatetests/runtimeworkspace, and full Vite plugin system tests belong in the privatetests/viteworkspace. - Performance measurements belong in private top-level
benchmarks/*workspaces and use*.bench.*. Keep their workload inputs underfixtures/; correctness and lifecycle coverage remain ordinary tests in the owning package or system-test workspace.checktypechecks benchmarks but does not run host-sensitive measurements. - Package-local
tests/trees mirror source or contract ownership without a redundantunit/layer. System-test workspaces classify top-level suites by verification kind; keep each suite's fixtures and harness beside that suite rather than mixing support directories with suite kinds. - An ordinary unit test mirrors its target's source path and file stem. When one target has several substantial test facets, put them under a directory named for the target rather than creating one giant file or a pile of ambiguous compound names. Integration and end-to-end tests instead live in explicit
integration/e2edirectories and are named for the contract or user-visible claim they prove. - Use
*.test.*repository-wide, never*.spec.*. The standardized*.sequential.test.*form is the execution-constraint exception, not a behavior name. - Test files run in parallel (
fileParallelism: true), but tests WITHIN a file run serially. We deliberately do NOT setsequence.concurrent: many render tests assert timing-sensitive counts driven by the renderer's ~32ms commit throttle, and in-file concurrency starves them of wall-clock on a 4-core CI runner (it passes on higher-core dev machines — the classic local-vs-CI trap). PTY tests needpool: "forks"(node-pty requireschild_process.fork, not worker threads). - Tests that depend on process-global state — fake timers (
vi.useFakeTimers, which mutates globalsetTimeout/performance) or assertions on shared globals (process.listenerCount, live yoga-node counts) — live in*.sequential.test.*files. Even file-level parallelism can perturb them, and grouping them by name documents the constraint. Add a header comment saying which global forces it. - Tests must not implicitly depend on the host environment. If a test needs a specific TTY/color behavior, model it through the official test host, a focused fake stream, an internal color capability, or a sanitized child environment rather than relying on ambient values or a Vitest-wide color override.
- After completing any task, run
vp run check(orvpr check) to verify: lint, type-check, test all packages, and build. - Commit messages and PR titles must follow Conventional Commits, e.g.
fix(runtime): preserve inline history on resize. - Never commit anything under
docs/. That directory is for local working notes and specs — it must stay out of git. - vue-tui is an independent product. Peer frameworks provide bounded behavioral evidence; they do not define product scope, package membership, public API, or a default behavior. Start from local product intent and contracts, then use the standing set and selection rules in
.agents/docs/peer-frameworks.mdwhen a comparison would reduce uncertainty. - A terminal-dependent peer behavior claim is a hypothesis until a real harness verifies it against the exact upstream version or commit examined. For each new or reopened decision, pin load-bearing peer evidence in the local record that uses it. Source reading, shared names, and memory are not proof of observable output, input, timing, or cleanup.
- Record accepted vue-tui behavior in its owning design record or decision ledger, never in a parallel parity or divergence catalog. A surprising difference from relevant peers deserves investigation and a local reason; it is not automatically a bug.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday Changed · +1 lines · +69 tokens per session d712aa157ce0
- 9d ago First seen · 101 lines · 3,479 tokens per session scan A 0c0a27414d5a
vue-tui AGENTS.md is an instructions file published in the GitHub repository vuejs-ai/vue-tui (361 stars, last pushed yesterday), licensed MIT. It adds 3,548 tokens to every session, about $0.0177 per session on Opus 5. A static security scan graded it A with 1 finding (runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other instructions, from other repositories
next.js AGENTS.md
AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
codex AGENTS.md
AGENTS.md instructions for openai/codex, covering rust/codex-rs, the codex-core crate, code review rules, crate api surface and model visible context.
vscode buildNext.instructions.md
Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).
vscode oss-third-party-notices.instructions.md
Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, applying the notice (cutover) and fallback chain (never fail the build).
langchain AGENTS.md
AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.
spec-kit AGENTS.md
AGENTS.md instructions for github/spec-kit, covering agents.md, about spec kit and specify, quickstart — add a new integration in 5 steps, integration architecture and integrationmanifest — file tracking.