vue-tui: Instructions file for Codex

AGENTS.md

vue-tui AGENTS.md is an instructions file for Codex, OpenCode from vuejs-ai/vue-tui. It costs 3,548 tokens per session, scanned A, original, MIT.

An AGENTS.md instruction file for a Vue terminal-interface project, where Vue is a framework for building user interfaces. It records the project’s coding rules, common mistakes, toolchain guidance, and review checklist.

In plain words
What is it for?
Use it when editing Vue components, composables, inputs, and renderer code. It gives concrete rules for reactive references, component definitions, script setup, live prop callbacks, and choosing templates, JSX, or programmatic rendering.
Why use it?
It prevents recurring implementation errors in Vue components and reactive state. It also tells agents which project documents and commands are authoritative when making or reviewing changes.

Instructions file for CodexOpenCode

Written for Codex and OpenCode: the file is AGENTS.md. Also seen: mentions CLAUDE.md; mentions AGENTS.md.

This is vuejs-ai/vue-tui's own configuration. It tells Codex and OpenCode how to work on vue-tui itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything vue-tui configures →

Reuse

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.

Copy the file
curl -O https://raw.githubusercontent.com/vuejs-ai/vue-tui/main/AGENTS.md
Clone the repo
git clone --depth 1 https://github.com/vuejs-ai/vue-tui

Made for: Codex, OpenCode.

Wrote 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.

agentmods badge for vue-tui AGENTS.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/vuejs-ai/vue-tui/agents-md/github.svg)](https://agentmods.dev/instructions/vuejs-ai/vue-tui/agents-md)
Your own site
<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.

agentmods 80×15 button for vue-tui AGENTS.md

Your own site · 80×15
<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>
Per session 3,548 This file is loaded in full into every session.
When invoked 3,548 The same file — it is already loaded in full.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured yesterday against content hash d712aa157ce0, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

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'
AGENTS.md · 102 lines

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 shallowRef over ref by default. Using ref requires 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, so inject, watch, and onScopeDispose won'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 with toRef(props, "onInput"), or pass a wrapper closure that reads props.onInput(...) at event time. For composable APIs that accept function handlers, prefer MaybeRef<Handler> + unref() over MaybeRefOrGetter<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/testing tests select the public color option instead of mutating process color variables; focused Runtime unit tests pass an internal color capability. Resolver tests may model FORCE_COLOR / NO_COLOR precedence 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 set NO_COLOR together with FORCE_COLOR.
  • When debugging color/ANSI output in a non-TTY shell, remove NO_COLOR and use FORCE_COLOR=3 for that command. To debug suppression, remove FORCE_COLOR and use non-empty NO_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's tests/ tree. Use tests, never a singular test directory.
  • Keep source-owned tests under packages/*/tests. Cross-package Runtime behavior belongs in the private tests/runtime workspace, and full Vite plugin system tests belong in the private tests/vite workspace.
  • Performance measurements belong in private top-level benchmarks/* workspaces and use *.bench.*. Keep their workload inputs under fixtures/; correctness and lifecycle coverage remain ordinary tests in the owning package or system-test workspace. check typechecks benchmarks but does not run host-sensitive measurements.
  • Package-local tests/ trees mirror source or contract ownership without a redundant unit/ 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 / e2e directories 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 set sequence.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 need pool: "forks" (node-pty requires child_process.fork, not worker threads).
  • Tests that depend on process-global state — fake timers (vi.useFakeTimers, which mutates global setTimeout/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 (or vpr 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.md when 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.

Read the full file on GitHub · 102 lines

Changes

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.

  1. yesterday Changed · +1 lines · +69 tokens per session d712aa157ce0
  2. 9d ago First seen · 101 lines · 3,479 tokens per session scan A 0c0a27414d5a

Subscribe to this mod's changes

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.

Related

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.

vercel/next.js · 7,296 tokens

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.

openai/codex · 5,153 tokens

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).

microsoft/vscode · 6,785 tokens

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).

microsoft/vscode · 5,001 tokens

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.

langchain-ai/langchain · 4,469 tokens

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.

github/spec-kit · 7,104 tokens