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 skills/citiesskylinesmodding/agents-plugins/gamefacenpx skills add CitiesSkylinesModding/agents-plugins --skill gamefacegit clone --depth 1 https://github.com/CitiesSkylinesModding/agents-pluginsWrote 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/skills/citiesskylinesmodding/agents-plugins/gameface)<a href="https://agentmods.dev/skills/citiesskylinesmodding/agents-plugins/gameface"><img src="https://agentmods.dev/badge/skills/citiesskylinesmodding/agents-plugins/gameface.svg" alt="Measured on agentmods" 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 | $0.00114 | $0.02410 |
| Opus 5 | $0.00057 | $0.01205 |
| Sonnet 5 | $0.00023 | $0.00482 |
| Haiku 4.5 | $0.00011 | $0.00241 |
Grade A, and why
gameface 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 4d 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.
Fallback without node: `curl -s <url>`, then read the HTML between `<main` and `</main>`. How it starts
The opening of the file, as written. The whole thing — 125 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Gameface
Gameface renders game UI from HTML/CSS/JS. It is powered by Cohtml (the HTML engine) and Renoir (the rendering engine), proprietary technology that is not WebKit, Chromium, or Gecko, and not a WebView. JavaScript runs on V8. Gameface implements a deliberate subset of HTML5/CSS3 chosen for game-UI performance: an unsupported HTML element is not an error, it lays out as a generic unstyled flex box with no semantics, and unsupported CSS is silently ignored. (The older Coherent UI product was Chromium-based; search results about it do not describe Gameface.) This skill is written against docs v3.0.3.1, with Cities: Skylines II (CS2) as the worked example throughout.
The map and the territory
The docs are the map; the running game is the territory. Three rules keep them straight:
- The docs describe the latest Gameface only. Support tables carry no "since version" annotations. A YES in today's docs is an upper bound, not a fact about your game.
- Version-gate every feature claim. A game embeds a Cohtml version frozen at ship time (CS2: 1.64.0.7, while the docs describe a 3.x release). A feature exists in the game iff the changelog introduced it at or below the game's version. references/version-gating.md has the lookup procedure, a baked version-to-feature timeline, and the list of features that never existed at all.
- Probe the territory. Two games on the same Cohtml version can still differ: per-game compatibility flags and embedder choices gate complex-selector styling, WebSockets, localization, text-transform, and more.
When a game is reachable,
game_statusreports the engine version (the CDP endpoint answersBrowser: "Cohtml/x.y.z"), andgame_evalsettles support questions in one probe:typeof ResizeObserverfor APIs, a style round-trip for CSS (el.style.setProperty('gap', '4px')then read it back; the parser rejects unsupported values, so they read back empty).CSS.supportsdoes not exist (theCSSglobal is only unit factories likeCSS.px). Page JS has no version global, butnavigator.userAgentcarries the engine version; sniff it for the version, feature-detect everything else.
What ships with it
6 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 4d ago First seen · 125 lines · 114 tokens per session scan A fb154113a06e
gameface is a skill published in the GitHub repository CitiesSkylinesModding/agents-plugins (5 stars, last pushed 4d ago), licensed MIT. It adds 114 tokens to every session and 2,410 once invoked, about $0.0006 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-31.
Other skills, from other repositories
lyric-refiner
Autonomous multi-pass lyric refinement for tightening, cohesion, and album unity. Use after lyrics are written to polish a track or entire album through iterative passes.
design-postgis-tables
Comprehensive PostGIS spatial table design reference covering geometry types, coordinate systems, spatial indexing, and performance patterns for location-based applications.
pgvector-semantic-search
Use this skill for setting up vector similarity search with pgvector for AI/ML embeddings, RAG applications, or semantic search. Trigger when user asks to: Store or search vector embeddings in PostgreSQL Set up semantic search, similarity search, or nearest neighbor search Create HNSW or IVFFlat indexes for vectors…
find-hypertable-candidates
Use this skill to analyze an existing PostgreSQL database and identify which tables should be converted to Timescale/TimescaleDB hypertables. Trigger when user asks to: Analyze database tables for hypertable conversion potential Identify time-series or event tables in an existing schema Evaluate if a table would…
postgres-hybrid-text-search
Use this skill to implement hybrid search combining BM25 keyword search with semantic vector search using Reciprocal Rank Fusion (RRF). Trigger when user asks to: Combine keyword and semantic search Implement hybrid search or multi-modal retrieval Use BM25/pgtextsearch with pgvector together Implement RRF (Reciprocal…
postgres
Use this skill for any PostgreSQL database work — table design, indexing, data types, constraints, extensions (pgvector, PostGIS, TimescaleDB), search, and migrations. Trigger when user asks to: Design or modify PostgreSQL tables, schemas, or data models Choose data types, constraints, indexes, or partitioning…