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.
npx agentmods add agents/multiplex-term/multiplex/i18ngit clone --depth 1 https://github.com/multiplex-term/MultiplexWhat 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 | $0.00000 | $0.01849 |
| Opus 5 | $0.00000 | $0.00924 |
| Sonnet 5 | $0.00000 | $0.00370 |
| Haiku 4.5 | $0.00000 | $0.00185 |
Grade A, and why
i18n scanned grade A with 0 findings 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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 124 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Localization (i18n)
Multiplex ships English (source), Traditional Chinese (zh-Hant, Taiwan
wording) and Japanese (ja). Decisions below were settled 2026-08-18; do not
re-litigate without new facts.
Mechanics
- String Catalogs, English text as the key.
Multiplex/Localizable.xcstrings(app),MultiplexWidgets/Localizable.xcstrings(widget extension is its own bundle),Multiplex/InfoPlist.xcstrings(usage descriptions; the plist itself is generated fromproject.yml). No symbolic keys, nocomment:/table:. - UIKit sites wrap with
String(localized: "…")(interpolation stays inside:String(localized: "Require \(method)")). SwiftUIText("literal")and App IntentsLocalizedStringResourceliterals extract by themselves. - Integer interpolation is locale-formatted:
String(localized: "port \(port)")renders2,222. Ports, line numbers, PIDs, years → interpolate\(String(port))(the key then carries%@); counts may keep the grouping. - Long prose uses a multi-line literal with
\continuations so SwiftLint's 120-column line length holds and the runtime string has no newlines:detail: String(localized: """ System follows the device. The deck, terminal chrome, and forms switch \ together. Dark and Glass share the dark terminal theme below. """) - The build fills the catalog, never a hand.
xcodebuildemits.stringsdata(SWIFT_EMIT_LOC_STRINGS) but only the Xcode IDE folds them back;./Tools/build.sh stringsruns the samexcstringstool syncafterbuild vos. ⚠ A visionOS build never emits the iPad-only sites (#if !os(visionOS): dictation, keyboard lock, camera, QR bind), so an Xcode IDE build for iPad can surface dozens of "new" keys at once and failStringCatalogTests(2026-08-21: 40 keys + the Info.plist bundle names, which are proper nouns →shouldTranslate: false). After adding iPad-only strings, sync from an iPad build's.stringsdatatoo. Keys that vanish from source are markedstale(kept for history until you delete them), new keys arrive empty — translate them. StringCatalogTestsfails the suite when any non-stale key lacks a zh-Hant or ja value (needs_reviewcounts) unless it isshouldTranslate: false, and asserts the bundle ships bothlprojs.zh-Hant/jabuild withoutknownRegions(XcodeGen ignores the option; the catalog compiler emits every language it holds), soproject.ymlneeds nothing per language.
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 First seen · 124 lines · 0 tokens per session scan A 56c6a3a559fe
i18n is an agent published in the GitHub repository multiplex-term/Multiplex (10 stars, last pushed 5d ago), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 1,849 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
Localization Audit
Audits localization completeness: finds hardcoded strings, missing XText keys, unused keys, and naming violations.
i18n
Hermex ships one String Catalog, HermesMobile/Resources/Localizable.xcstrings, included in the app, widget, and share-extension targets. Every user-facing literal is already externalized (String(localized:) / LocalizedStringKey), so adding a language is normally translation-only — no Swift edits.
layer3-issue-detection
Layer 3 systematically scans ALL entry points from Layer 1 and applies issue detection rules. Unlike Layer 2 (which traces specific flows in depth), Layer 3 does a breadth-first scan to categorize issues across the entire codebase.
layer4-semantic-evaluation
Layer 4 evaluates workflows from the user's perspective. While Layers 1-3 analyze code structure, Layer 4 asks: "Does this workflow help the user achieve their goal?".
layer2-methodology
Layer 2 takes entry points from Layer 1 and traces the complete user journey.
mobile-architect
Mobile architecture expert. Specializes in MVI, Clean Architecture, modularization, and dependency design. Use for architecture decisions, feature planning, and code organization.