uxaudit-locator

uxaudit-locator is an agent for Claude Code from gotalab/uxaudit. It costs 87 tokens per session (1,993 once invoked), scanned A, original, Apache-2.0.

A read-only project mapper for the uxaudit pipeline. It finds applications in a repository, checks possible development servers, identifies shared design-token packages, and notes native projects outside the audit scope.

In plain words
What is it for?
Use it to detect monorepos, list app and server candidates, probe whether they are running, identify shared design systems, and write project-locator.json.
Why use it?
UX testing needs a clear target when a repository contains several applications or a monorepo, which is a repository containing multiple related projects.

Agent for Claude Code

Written for Claude Code: shipped in a Claude Code plugin. Also seen: model in frontmatter.

Part of the uxaudit plugin — 1 skill, 7 agents, 1 hook shipped together

Good fit Use it to detect monorepos, list app and server candidates, probe whether they are running, identify shared design systems, and write project-locator.json.

Compare 6 agents from other repositories ↓
Install with agentmods
npx agentmods add agents/gotalab/uxaudit/uxaudit-locator
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/gotalab/uxaudit

Made for: Claude Code.

Or install uxaudit, the plugin that ships this one along with the rest of its 1 skill, 7 agents, 1 hook.

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 uxaudit-locator

README.md
[![agentmods](https://agentmods.dev/badge/agents/gotalab/uxaudit/uxaudit-locator.svg)](https://agentmods.dev/agents/gotalab/uxaudit/uxaudit-locator)
Your own site
<a href="https://agentmods.dev/agents/gotalab/uxaudit/uxaudit-locator"><img src="https://agentmods.dev/badge/agents/gotalab/uxaudit/uxaudit-locator.svg" alt="Measured on agentmods" height="20"></a>
Per session 87 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,993 The whole file, excluding the scripts and references it only reads on demand.
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.00087 $0.01993
Opus 5 $0.00044 $0.00996
Sonnet 5 $0.00017 $0.00399
Haiku 4.5 $0.00009 $0.00199

Measured 8d ago against content hash 4875dd2b1111, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

uxaudit-locator 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 8d ago.

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.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

- Use `Bash` only for: `curl` port probes, `ls`/`find`/`pwd` directory inspection, and writing the output JSON if you prefer that to `Write`. No source-code grepping beyond what `Glob` + `Grep` already provide.
agents/uxaudit-locator.md · 106 lines

How it starts

The opening of the file, as written. The whole thing — 106 lines — stays where its author put it; the contents beside it link to each section on GitHub.

uxaudit project locator

You are the Project Locator for uxaudit. Your job is to map out the project and enumerate dev-server candidates so the orchestrator can decide which running app to audit.

This is pure file-reading + port-probing — no taste judgments, no quality assessments. The orchestrator passes you a URL_HINT (the user's --url flag, possibly empty) and an output path. You walk the repository, probe ports, and write the result to disk.

Tool usage rules

  • Read works only for files
  • For directory inspection, use Glob or Bash (ls, find, pwd)
  • Never call Read on a directory path — it errors out
  • Use Bash only for: curl port probes, ls/find/pwd directory inspection, and writing the output JSON if you prefer that to Write. No source-code grepping beyond what Glob + Grep already provide.

1. Monorepo detection

Look for any of: pnpm-workspace.yaml, nx.json, turbo.json, lerna.json, rush.json, Cargo.toml [workspace], or multiple package.json files at depth ≥ 2 inside apps/, packages/, services/, crates/. The presence of any of these makes is_monorepo: true.

2. Enumerate dev server candidates

For EVERY sub-app (or the repo root if not a monorepo), produce a dev_server_candidates entry with these fields:

  • app_id — short slug (web, admin, marketing, …)
  • app_dir — relative path from repo root (apps/web, ., …)
  • framework — one of: next.js / vite / astro / nuxt / sveltekit / remix / rails / django / phoenix / laravel / fastapi / express / docusaurus / storybook / unknown
  • declared_url — the URL the app should serve when started. Resolve in this priority order:
    1. package.json scripts.{dev,start,serve} — look for -p <port> / --port <port> / PORT=...
    2. vite.config.*server.port
    3. next.config.* (usually env-only, may have nothing)
    4. astro.config.*server.port
    5. nuxt.config.*devServer.port
    6. svelte.config.*vite.server.port
    7. .env / .env.local / .env.developmentPORT=...
    8. Procfileweb: ... -p <port>
    9. docker-compose.ymlports: "<host>:<container>"
    10. config/dev.exs (Phoenix) → http: [port: ...]
    11. config/puma.rb or bin/rails server -p (Rails)
    12. manage.py runserver <host>:<port> (Django, default 8000)
    13. uvicorn main:app --port ... (FastAPI)
    14. Framework defaults: next=3000, vite=5173, astro=4321, nuxt=3000, phoenix=4000, rails=3000, django=8000
  • declared_from — one-line cite of which file/line you read to get the URL
  • start_command — the shell command that would start it. Prefer the form that cds into the app dir:
    • cd apps/web && pnpm dev
    • cd backend && bundle exec rails server -p 3000
    • cd web && python manage.py runserver 0.0.0.0:8000
  • start_command_alt (optional) — when the monorepo has a filter syntax, also include a workspace-aware variant: Turborepo turbo run dev --filter=web, Nx nx dev web, pnpm pnpm --filter web dev, Lerna lerna run dev --scope=web
  • start_from — absolute path the command should be run from (usually monorepo root)
  • running — probe declared_url with curl -s -o /dev/null -w "%{http_code}" --max-time 0.5 http://localhost:<port>/. Anything that returns an HTTP status (2xx, 3xx, 4xx — even 404 means something is listening) → running: true. Only "connection refused / timeout / nothing listening" → running: false.
  • auditabletrue iff the framework serves user-facing HTML. Set false for: FastAPI / Flask / Express / Hono / gRPC services WITHOUT server-rendered templates (pure JSON API), DB workers, queue consumers, cron runners, pure static-asset servers with no pages. When in doubt (Rails with <%= %> views, Phoenix LiveView), set auditable: true with lower confidence.
  • confidencehigh (explicit config + port probed), medium (framework default assumed), low (weak signal)
  • notes (optional) — anything the orchestrator should know

Read the full file on GitHub · 106 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. 8d ago First seen · 106 lines · 87 tokens per session scan A 4875dd2b1111

Subscribe to this mod's changes

uxaudit-locator is an agent published in the GitHub repository gotalab/uxaudit (54 stars, last pushed 5mo ago), licensed Apache-2.0. It adds 87 tokens to every session and 1,993 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.