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 skills add pixiv/charcoal --skill setting-up-charcoal-styledgit clone --depth 1 https://github.com/pixiv/charcoalWrote 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/pixiv/charcoal/setting-up-charcoal-styled)<a href="https://agentmods.dev/skills/pixiv/charcoal/setting-up-charcoal-styled"><img src="https://agentmods.dev/badge/skills/pixiv/charcoal/setting-up-charcoal-styled/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/skills/pixiv/charcoal/setting-up-charcoal-styled"><img src="https://agentmods.dev/badge/skills/pixiv/charcoal/setting-up-charcoal-styled.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.00046 | $0.01631 |
| Opus 5.5 | $0.00018 | $0.00652 |
| Sonnet 5.5 | $0.00009 | $0.00326 |
| Haiku 4.5 | $0.00005 | $0.00163 |
Grade A, and why
setting-up-charcoal-styled 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 — 140 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Setting up charcoal with styled-components
@charcoal-ui/styled exists for codebases already written in styled-components. Read the next section before wiring it in.
Choose this only for existing code
@charcoal-ui/styled is frozen at Design Token 1.0. Its source contains no reference to Token 2.0, and it receives only maintenance commits while @charcoal-ui/tailwind-config keeps gaining v2 features.
The package is not formally deprecated — only createTheme carries @deprecated. The problem is not that it is forbidden; it is that it cannot reach the current token generation.
It also drags in the component library: @charcoal-ui/styled peer-depends on @charcoal-ui/react, because useTheme, useThemeSetter, themeSelector, and SetThemeScript are re-exports whose implementations live there. You get that dependency even if you never render a charcoal component.
For a new project, or when you only want tokens, use setting-up-charcoal-css-variables instead.
Install
npm install @charcoal-ui/styled@^6 @charcoal-ui/theme@^6 @charcoal-ui/react@^6
Pin the major and keep every @charcoal-ui/* package on the same one. styled-components >=5.1.1 and react >=17.0.0 are peers.
Provider
Two independent mechanisms, both usually needed:
ThemeProvider(styled-components) supplies the JS theme object so${({ theme }) => theme.color.text1}resolves. The values are literal hex strings, notvar().TokenInjector(@charcoal-ui/styled) emits--charcoal-color-*CSS variables at runtime viacreateGlobalStyle, for anything not going through styled-components.
import { ThemeProvider } from 'styled-components'
import {
TokenInjector,
addThemeUtils,
useTheme,
useThemeSetter,
themeSelector,
} from '@charcoal-ui/styled'
import { light, dark } from '@charcoal-ui/theme'
const lightTheme = addThemeUtils(light)
const darkTheme = addThemeUtils(dark)
export function ThemeRoot({ children }: { children: React.ReactNode }) {
const [mode] = useTheme()
useThemeSetter()
return (
<ThemeProvider theme={mode === 'dark' ? darkTheme : lightTheme}>
<TokenInjector
theme={{ ':root': light, [themeSelector('dark')]: dark }}
background="background1"
/>
{children}
</ThemeProvider>
)
}
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 · 140 lines · 46 tokens per session scan A 0fd659e6cd7f
setting-up-charcoal-styled is a skill published in the GitHub repository pixiv/charcoal (376 stars, last pushed yesterday), licensed Apache-2.0. It adds 46 tokens to every session and 1,631 once invoked, about $0.0002 per session on Opus 5.5. 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-10-26.
Other skills, from other repositories
popular-web-designs
54 real design systems (Stripe, Linear, Vercel) as HTML/CSS.
web-prototype
General-purpose desktop web prototype. Single self-contained HTML file built by copying the seed assets/template.html and pasting section layouts from references/layouts.md. Default for any landing / marketing / docs / SaaS page when no more specific skill matches.
anti-slop-design
Autonomous Principal Design Technologist. Cures vibe-coded software from AI frontend slop using curated token archetypes and 7-axis quality gating.
velar-luxury-real-estate
Use this plugin when the user wants a high-end luxury real-estate / architecture landing page with cinematic scroll choreography: a typewriter preloader that lifts away, a scroll-driven house image that rises from below and scales up while pinning to a dark statement section, a sticky dark stats band with count-up…
web-prototype-taste-brutalist
Swiss industrial-print web prototype. Newsprint canvas, monolithic black grotesque, viewport-bleeding numerals, hairline grid dividers, hazard-red accent, ASCII syntax decoration. Distilled from Leonxlnx/taste-skill brutalist-skill (Swiss Industrial Print mode).
web-prototype-taste-soft
Apple-tier soft web prototype. Silver/cream canvas, double-bezel cards, button-in-button CTAs, generous squircle radii, spring motion, ambient mesh. Distilled from Leonxlnx/taste-skill soft-skill + sections 4–8 of taste-skill.