Chisle
The coding-agent plugin that bills 52% of a bare model across 20 live tasks. Terse persona + tool-output compressor + context diet.
Halo and Pro: 218 accessible React components and 31 screens in two looks with one API. Dark mode, Tailwind v4, MCP server for agents.
Developer toolsGitHub @twentyfirstmediaAvailability not checked yetOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
Two React UI kits with one component API: Halo (soft, rounded, light-first) and Pro (sharp, dense, dark-first). 216 components, 690+ icons, glass surfaces, motion levels, shadcn-compatible theming, custom elements for plain HTML, and an MCP server for coding agents. MIT.
Loading the full README.
Read the full README ↗data-kit: markup and state stay, only the CSS changes. A parity test fails the build if the kits drift apart.--primary, --secondary, --muted, --accent, --destructive, --border, --ring, --radius, charts, sidebar) restyle every component in both kits, light and dark. Paste a theme from ui.shadcn.com/themes or build one live.surface="glass", FloatingLayout and Ambient turn panels, tiles, the whole app shell, menus and controls into translucent, blurred glass that stays readable over any backdrop, milky in Halo, dark and hairline-edged in Pro.motion="off" | "standard" | "expressive"; reduced motion always wins.bg-primary, text-muted-foreground).llms.txt and a Markdown version of every docs page, so Claude Code, Cursor and friends use the real components instead of guessing.The same JSX renders either way:
npx @twentyfirstmedia/ui init --kit halo # or --kit pro
init installs the kit, imports its styles (and the Tailwind preset if you use Tailwind), creates a UIProvider root and wires up the Next.js layout. Or set it up by hand:
npm install @twentyfirstmedia/halo
import "@twentyfirstmedia/halo/styles.css";
import { Button, Panel, TextField, UIProvider } from "@twentyfirstmedia/halo";
export function App() {
return (
<UIProvider theme="system">
<Panel title="Workspace">
<TextField label="Name" defaultValue="Northwind" />
<Button variant="primary">Save</Button>
</Panel>
</UIProvider>
);
}
Both kits in one app: import @twentyfirstmedia/ui-core/themes.css instead and switch with <UIProvider kit="pro"> or data-kit="pro" on <html>.
Tailwind v4: @import "@twentyfirstmedia/halo/tailwind.css"; after @import "tailwindcss"; maps every token to utilities (bg-surface, text-ink, rounded-lg, shadow-card).
Both kits read shadcn/ui's theme variables, so any shadcn theme works as it is, and every component follows it:
@import "@twentyfirstmedia/halo/styles.css";
:root {
--primary: oklch(0.546 0.245 262.881);
--primary-foreground: oklch(0.985 0 0);
--radius: 0.75rem;
}
.dark {
--primary: oklch(0.707 0.165 254.624);
}
Six brand presets ship as CSS (@twentyfirstmedia/halo/themes/violet.css), npx @twentyfirstmedia/ui theme ./shadcn-theme.css writes and imports a theme, <UIProvider tokens={…}> sets one at runtime, and the theme builder shows it live on real components. A test applies a theme to every example in both kits, light and dark, and fails if any part ignores it.
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@twentyfirstmedia/halo/dist/styles.css" />
<script type="module" src="https://cdn.jsdelivr.net/npm/@twentyfirstmedia/elements/dist/elements.js"></script>
<tf-panel title="Workspace">
<tf-text-field label="Name" default-value="Northwind"></tf-text-field>
<tf-button variant="primary">Save</tf-button>
</tf-panel>
See Plain HTML and frameworks.
The CLI ships an MCP server with the docs of the version you installed. It runs offline, needs no account and has no runtime dependencies.
npx @twentyfirstmedia/ui mcp init
This registers it for Claude Code (.mcp.json), Cursor (.cursor/mcp.json) and VS Code (.vscode/mcp.json) and adds the kit's rules to AGENTS.md. To add it by hand:
claude mcp add twentyfirst-ui -- npx -y @twentyfirstmedia/ui mcp --kit halo
Tools: search_docs, list_components, get_component, get_pattern, get_guide, get_tokens, list_icons and check_usage. check_usage reviews code for unknown components, props or icons, missing required props and colour literals.
For any other LLM: /llms.txt, /llms-full.txt, and every page as Markdown: append .md to its path.
This is the beginning of the README. Read the rest at the original. Read the full README ↗