Reflexo Release
Myriad-Dreamin/typst.ts
Guide Reflexo/typst.ts release preparation and operator handoffs.
Build a complete, working CLI tool using TermUI components. An agent skill from Arindam200/termui.
$ npx skills add Arindam200/termui --skill cli-creator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Arindam200/termui cli-creator --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Arindam200/termui.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/cli-creator .claude/skills/cli-creator && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "cli-creator" agent skill from https://github.com/Arindam200/termui/tree/main/skills/cli-creator into .claude/skills/cli-creator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-creator", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Arindam200/termui/tree/main/skills/cli-creatorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Arindam200/termui --skill cli-creator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Arindam200/termui cli-creator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Arindam200/termui.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/cli-creator .agents/skills/cli-creator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cli-creator" agent skill from https://github.com/Arindam200/termui/tree/main/skills/cli-creator into .agents/skills/cli-creator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-creator", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Arindam200/termui --skill cli-creator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Arindam200/termui cli-creator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Arindam200/termui.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/cli-creator .cursor/skills/cli-creator && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cli-creator" agent skill from https://github.com/Arindam200/termui/tree/main/skills/cli-creator into .cursor/skills/cli-creator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-creator", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Arindam200/termui.git --path skills/cli-creator--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Arindam200/termui --skill cli-creator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Arindam200/termui cli-creator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Arindam200/termui.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/cli-creator .gemini/skills/cli-creator && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cli-creator" agent skill from https://github.com/Arindam200/termui/tree/main/skills/cli-creator into .gemini/skills/cli-creator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-creator", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Arindam200/termui cli-creatorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Arindam200/termui --skill cli-creator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Arindam200/termui.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/cli-creator .github/skills/cli-creator && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cli-creator" agent skill from https://github.com/Arindam200/termui/tree/main/skills/cli-creator into .github/skills/cli-creator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-creator", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Arindam200/termui --skill cli-creator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Arindam200/termui cli-creator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Arindam200/termui.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/cli-creator .opencode/skills/cli-creator && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cli-creator" agent skill from https://github.com/Arindam200/termui/tree/main/skills/cli-creator into .opencode/skills/cli-creator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cli-creator", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cli-creatorBuild a complete, working CLI tool using TermUI components. An agent skill from Arindam200/termui.
CLI Creator is an agent skill from Arindam200/termui. Build a complete, working CLI tool using TermUI components. Use this skill whenever someone describes a CLI or TUI app they want to create — a dashboard, a setup wizard, a data browser, a deployment tool, a monitoring app, or any interactive terminal interface. Trigger on phrases like "build me a CLI", "create a terminal app", "make a TUI for", "I want a command-line tool that", "build a CLI that shows", or any request to generate a Node.js CLI from scratch. Even vague requests like "I need a CLI for my project"…
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/component-picker.md` and `references/patterns.md`).
It sits in DevOps & Cloud. It works with Node.js. The repository describes itself as: TypeScript terminal UI framework. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 44de57b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npxnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx and npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
CLI Creator loads about 2.1k tokens when it runs, and up to ~9.4k if it reads all its reference files. Until then it costs about 139 tokens; SKILL.md has 632 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Arindam200/termui at commit 44de57b, republished under its MIT licence (© Arindam200). 632 words, ~2,066 tokens.
.claude/skills/cli-creator/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Your job is to build a complete, working CLI project for the user using TermUI. The output is real code — a runnable TypeScript app.
TermUI is a React/Ink-based terminal UI framework. 101 components. Shadcn-style: npx termui add <component> copies source files into the user's project. No runtime registry dependency.
Before writing a single line of code, understand what they're building. Ask these questions (you can batch them):
mytool deploy, mytool logs) or is it one interactive TUI session?If the request is clear enough (e.g., "build me a Docker container manager with a table view and a detail panel"), skip questions you can infer and just clarify the ones that would change the component selection.
Map what they described to one of these patterns. Patterns can be combined.
| Pattern | When to use | Core components |
|---|---|---|
| Data Browser | Browse/search/filter a list of items | AppShell + Table or VirtualList + SearchInput |
| Dashboard | Real-time metrics, logs, charts | AppShell + Tabs + BarChart/Gauge/Sparkline + useInterval |
| Setup Wizard | Onboarding, init, configuration | SetupFlow + TextInput/Select/MultiSelect + Spinner |
| CRUD Manager | Create / read / update / delete resources | AppShell + Table + Form/FormField + Modal/Confirm |
| Auth Flow | Login, token entry, account setup | LoginFlow + TextInput/PasswordInput + SetupFlow |
| Log Viewer | Streaming logs, event feeds | AppShell + Log + StatusMessage + useAsync |
| File Browser | Navigate filesystem, pick files | AppShell + DirectoryTree or FilePicker |
Full working code for each pattern is in references/patterns.md. Read it before writing code.
<project-name>/
├── package.json
├── tsconfig.json
├── src/
│ ├── index.tsx ← entry point: render(<App />) wrapped in ThemeProvider
│ ├── app.tsx ← root App component, handles routing between screens
│ ├── screens/ ← one file per top-level screen/view
│ │ ├── HomeScreen.tsx
│ │ └── DetailScreen.tsx
│ └── components/ ← TermUI components land here after npx termui add
│ └── (added by CLI)
└── termui.config.json ← created by npx termui initFor single-screen apps (e.g., a simple wizard) you can skip screens/ and put everything in app.tsx.
package.json template{
"name": "<project-name>",
"version": "0.1.0",
"type": "module",
"bin": { "<project-name>": "./dist/index.js" },
"scripts": {
"dev": "tsx src/index.tsx",
"build": "tsc",
"start": "node dist/index.js"
},
"dependencies": {
"ink": "^5.0.0",
"react": "^18.0.0",
"termui": "latest"
},
"devDependencies": {
"typescript": "^5.4.0",
"tsx": "^4.7.0",
"@types/react": "^18.0.0"
},
"engines": { "node": ">=18.0.0" }
}tsconfig.json template{
"compilerOptions": {
"target": "ES2022",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"jsx": "react-jsx",
"jsxImportSource": "react",
"strict": true,
"esModuleInterop": true,
"outDir": "dist"
},
"include": ["src"]
}cd <project-name>
npm install
npx termui init # sets up termui.config.json
npx termui add <component-list> # install exactly the components you're using
npm run dev # run with tsx (hot-reloading)Generate the npx termui add command using the kebab-case component names from the registry (e.g., app-shell, table, select, spinner, setup-flow). List only the components the project actually uses.
src/index.tsx)#!/usr/bin/env node
import React from 'react';
import { render } from 'ink';
import { ThemeProvider } from 'termui/core';
import { draculaTheme } from 'termui/core';
import { App } from './app.js';
render(
<ThemeProvider theme={draculaTheme}>
<App />
</ThemeProvider>
);src/app.tsx)import React, { useState } from 'react';
type Screen = 'home' | 'detail' | 'create';
export function App() {
const [screen, setScreen] = useState<Screen>('home');
const [selectedId, setSelectedId] = useState<string | null>(null);
if (screen === 'detail' && selectedId) {
return <DetailScreen id={selectedId} onBack={() => setScreen('home')} />;
}
if (screen === 'create') {
return <CreateScreen onDone={() => setScreen('home')} />;
}
return (
<HomeScreen
onSelect={(id) => {
setSelectedId(id);
setScreen('detail');
}}
onCreate={() => setScreen('create')}
/>
);
}q / Ctrl+C → quitEscape → go back / cancel↑↓ → navigate listsEnter → select / confirmTab / Shift+Tab → switch tabs or focus? → show helpImplement quit handling in every screen:
useInput((input, key) => {
if (input === 'q' || (key.ctrl && input === 'c')) process.exit(0);
if (key.escape) onBack?.();
});Read references/component-picker.md to match user needs to specific components with their exact props.
Read references/patterns.md for complete, copy-paste-ready implementations of each pattern.
useTheme().colors.primary — never hardcode hexuseState for local UI state, pass callbacks up for cross-screen navigationuseAsync from termui/core and show Skeleton or Spinner while loadingconf adapter (termui/conf) which wraps the conf npm packageErrorBoundary at the app root so crashes don't leave the terminal in a broken stateWhen done, give them:
// TODO)npx termui add command to runnpm install && npm run dev to try it immediatelyIf the app is complex (3+ screens), walk through what each screen does before showing the code.
© Arindam200, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in skills/cli-creator of Arindam200/termui.
Open the folder on GitHubat commit 44de57b
CLI Creator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| CLI Creator this skillArindam200/termui | 141 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Reflexo ReleaseMyriad-Dreamin/typst.ts | 1.2k | — | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| GitHub Actions CreatorFNOSP/FlyNarwhal | 495 | 1 repos | ~2.4k | Automated safety check: Pass | AGPL-3.0 | |
| CI Pipeline Synthesizerkajisho5/ffmpeg-skill | 1.9k | 1 repos | ~1.1k | Automated safety check: Pass | MIT | |
| GitHub Actions Supply Chain Pinningasyncapi/generator | 1.1k | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Apm IntegrationsDataDog/dd-trace-js | 836 | — | ~3k | Automated safety check: Pass | Custom licence |
Myriad-Dreamin/typst.ts
Guide Reflexo/typst.ts release preparation and operator handoffs.
FNOSP/FlyNarwhal
A skill your agent uses when the user wants to create, generate, or set up a GitHub Actions workflow.
kajisho5/ffmpeg-skill
Generate GitHub Actions CI/CD pipeline configurations for automated building and testing of library and package projects.
asyncapi/generator
A skill your agent uses when editing, adding, or reviewing any file under .github/workflows/, or when a CI step installs a CLI tool (npm i -g, npx, pipx, uses: /setup-).
DataDog/dd-trace-js
A skill your agent uses when adding, debugging, fixing, or modifying instrumentation and plugins for third-party libraries in dd-trace-js.
pietheinstrengholt/rssmonster
A skill your agent uses when a feature has already gone through multiple implementation and review cycles and the work is starting to loop.
Arindam200/termui
Quick reference for TermUI components, hooks, and theming. An agent skill from Arindam200/termui.
Works with
Categories
Build a complete, working CLI tool using TermUI components. An agent skill from Arindam200/termui. CLI Creator is an agent skill from Arindam200/termui. Build a complete, working CLI tool using TermUI components.
CLI Creator fits situations like: someone describes a CLI; TUI app they want to create — a dashboard; A deployment tool; A monitoring app.
Run `npx skills add Arindam200/termui --skill cli-creator -a claude-code`. Or copy the skill folder (skills/cli-creator in Arindam200/termui) into .claude/skills/cli-creator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Arindam200/termui --skill cli-creator -a codex`. Or copy the skill folder (skills/cli-creator in Arindam200/termui) into .agents/skills/cli-creator in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Arindam200/termui --skill cli-creator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cli-creator, .gemini/skills/cli-creator, .github/skills/cli-creator and .opencode/skills/cli-creator in your project.
Going by SKILL.md and its folder, CLI Creator needs the command-line tools its instructions call (npx and npm). Our summary lists: Node.js; Docker.
SKILL.md contains no URLs. Its commands use npx and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
CLI Creator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with CLI Creator: Reflexo Release (Myriad-Dreamin/typst.ts, 1.2k stars), GitHub Actions Creator (FNOSP/FlyNarwhal, 495 stars), CI Pipeline Synthesizer (kajisho5/ffmpeg-skill, 1.9k stars) and GitHub Actions Supply Chain Pinning (asyncapi/generator, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Arindam200 (a GitHub user) maintains it in Arindam200/termui, which has 141 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on April 29, 2026.
Source: Arindam200/termui on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.