复制安装命令
用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。
复制前请先查看来源、License 和安全提示。
Mentioned in Awesome Codex CLI
用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。
复制前请先查看来源、License 和安全提示。
来源文件:README.md
Write a skill once, use it everywhere. Skrills validates and syncs skills, commands, agents, MCP servers, and hooks across Claude Code, Codex CLI, GitHub Copilot CLI, and Cursor, all from a single Rust binary.
Install · User Guide · CLI Reference · FAQ · Changelog
macOS / Linux:
curl -LsSf https://raw.githubusercontent.com/athola/skrills/HEAD/scripts/install.sh | sh
Windows PowerShell:
powershell -ExecutionPolicy Bypass -NoLogo -NoProfile -Command ^
"Remove-Item alias:curl -ErrorAction SilentlyContinue; iwr https://raw.githubusercontent.com/athola/skrills/HEAD/scripts/install.ps1 -UseBasicParsing | iex"
Or cargo install skrills. See the
installation guide for HTTP transport and
service setup.
Skrills handles the loop of writing skills and keeping every CLI current. The common jobs:
Make your Claude skills work everywhere. Codex and Copilot are strict about frontmatter; Cursor uses its own rule format. Detect and fix the incompatibilities, then push to the other CLIs:
skrills validate --target both --autofix # fix missing/invalid frontmatter and body
skrills sync-all # mirror everything to all four CLIs
Keep two environments in sync. Edit in one, mirror to another. File hashing preserves manual edits on both sides:
skrills sync --from cursor --to claude
Trim context-window cost. Surface your token-heaviest skills with reduction suggestions:
skrills analyze --min-tokens 1000 --suggestions
Watch what's loaded, live. cold-window continuously re-reads your
plugins, skills, commands, and subagents, applying per-source token
attribution and tiered alerts. Render it as a terminal TUI or a browser
dashboard (or both):
skrills cold-window --tui # live TUI in this terminal (q / Ctrl-C to quit)
skrills cold-window --browser --port 8888 # same engine, browser dashboard at /dashboard
Keep it always-on in Zellij. Dedicate a pane
to the TUI that respawns if it exits. Save as
~/.config/zellij/layouts/skrills.kdl and launch with
zellij --layout skrills:
layout {
tab name="cold-window" focus=true {
pane command="bash" {
// Loop respawns the TUI after a crash or reboot.
args "-c" "until skrills cold-window --tui; do echo restarting...; sleep 2; done"
}
}
}
Already inside a Zellij session? Open it in a split without a layout
file: zellij run -d down -- bash -c 'until skrills cold-window --tui; do sleep 2; done'.

Let other tools call Skrills. The MCP server exposes 36 tools (validation, sync, intelligence, research) over stdio or HTTP:
skrills serve --http 127.0.0.1:3000 --open
See the quickstart tutorial for a full
walkthrough and the CLI reference for every command,
including skill lifecycle tools (skill-deprecate, skill-rollback,
skill-import, skill-score, skill-catalog).

Skrills syncs eight asset types across four CLIs. Each cell reflects what the adapter reads and writes today:
| Asset | Claude Code | Codex CLI | Copilot CLI | Cursor |
|---|---|---|---|---|
| Skills | Y | Y | Y | Y |
| Commands | Y | Y | -- | Y |
| Agents | Y | -- | Y | Y |
| MCP Servers | Y | Y | Y | Y |
| Hooks | Y | -- | -- | Y |
| Instructions / Rules | Y | -- | Y | Y |
| Preferences | Y | Y | Y | -- |
| Plugin Assets | Y | -- | -- | Y |
A dash means that asset doesn't sync to that CLI, either because the CLI
has no equivalent (Copilot CLI has no slash commands) or because the
mapping isn't built yet (Cursor preferences). Plugin assets sync to
Cursor's plugins/local/ so synced plugins appear installed, and
stale entries are pruned automatically. See the
sync guide for details.
Validate skills on every pull request with the reusable GitHub Action:
- uses: athola/skrills/.github/actions/validate-skills@v0.8.2
with:
targets: all
strict: true
path: skills/
Persistent settings live in ~/.skrills/config.toml (precedence: CLI
flags > environment variables > config file):
[serve]
auth_token = "your-secret-token"
tls_auto = true
cors_origins = "https://app.example.com"
See security docs for TLS setup and the FAQ for environment variables.
| Resource | Description |
|---|---|
| User Guide | Primary documentation (mdBook) |
| CLI Reference | All commands with examples |
| Sync Guide | Cross-CLI sync workflows |
| MCP Tutorial | Server setup and tool reference |
| Architecture | Crate graph and runtime flow |
| Security | Auth, TLS, threat model |
| Changelog | Release history |
ANTHROPIC_API_KEY or
OPENAI_API_KEY.make lint test --quiet
Builds on stable Rust. See the
development guide and
process guidelines. Update docs and tests
with code. Report bugs with your OS, skrills --version, and logs
(--trace-wire for MCP). For security, see the
security policy.
name: html-portal-generator
description: Convert a codebase into a self-contained HTML portal app for ingestion into AI application systems. Produces a single deployable HTML file with embedded CSS, JS, and data.
version: 1.0.0Convert any codebase into a single, self-contained HTML portal application. The output is one .html file with embedded styles, scripts, and data that works offline, on file:// protocol, and can be uploaded into AI application portals.
Follow these phases in order. Each phase builds on the previous.
Understand what the product does before writing any HTML.
Produce a mental inventory:
If the user provides a reference HTML app:
Design the portal as a single-page app with tab navigation.
Required structural elements:
max-width for readabilityView planning - map each product feature to a view:
| Feature Type | View Pattern |
|---|---|
| Entity browsing (skills, packages, endpoints) | Card grid with search/filter/sort and detail panel |
| Validation/checking | Split editor (textarea input) and results panel |
| Analysis/metrics | Input, stat cards, and bar charts |
| Configuration/creation | Form inputs, live preview, and download |
| Format conversion | Side-by-side input/output with target selector |
| Reference docs (commands, APIs) | Searchable/filterable list with copy-on-click |
| Status/compatibility | Matrix grid or table |
| Dashboard/overview | Stat cards, quick actions, and recent items |
Every view must work 100% standalone. No external API calls required. Embed demo data. Add optional live-server connection as a bonus.
Convert real product data into JavaScript arrays embedded in the HTML.
const arrays in the <script> block - no external JSON filesFor large datasets (100+ items), use a build script to extract and format the data rather than hand-writing it.
If the product has local files users might want to scan:
showDirectoryPicker)Build the HTML file following these rules:
Single-file architecture:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Product - Portal</title>
<style>/* All CSS here */</style>
</head>
<body>
<!-- All HTML here -->
<script>/* All JS here, wrapped in IIFE */</script>
</body>
</html>
CSS requirements:
:root { --bg: ...; }) for theming@media (prefers-color-scheme: light)@media (max-width: ...) breakpointsJavaScript requirements:
(function() { 'use strict'; ... })();onclick handlers - use addEventListener exclusivelydocument.execCommand('copy') for file:// protocoldata-view attributes and .active class togglingInteractivity checklist - every element the user can see must do something when clicked:
target="_blank" rel="noopener"Entity Browser (the main catalog view):
- Search input (filters by name and description)
- Source/category dropdown filter
- Quality/status dropdown filter
- Sort selector (alpha, by source, by status)
- Card grid with: name, source badge, description, validation tags
- Validation tags with hover tooltips showing failure reasons
- Detail panel (sticky sidebar) with full metadata on click
- Export button (download as JSON)
- Local scan button (File System Access API)
Validator:
- Target selector (individual CLI or "All")
- Textarea for pasting content
- Validate button - runs client-side validation logic
- Autofix button - actually modifies content:
- Fills missing frontmatter fields
- Converts names to kebab-case
- Scaffolds body sections if too short
- Adds target-specific fields (e.g., globs for Cursor)
- Quality score panel (0-100 with visual ring)
- Download button for the validated/fixed file
- Load Sample button with realistic example content
Token/Size Analyzer:
- Name input with datalist autocomplete from catalog
- Load button to pull content from catalog by name
- Textarea for content
- Stat cards: tokens, words, lines, characters
- Progress bar with percentage (label outside bar for small values)
- Size category with color coding
- Optimization suggestions list
Format Converter:
- Source format selector
- Target format selector
- Convert button (single target)
- Convert All button (generates all formats with tab switcher)
- Download button
- Side-by-side input/output layout
Creator/Builder:
- Form fields for metadata (name, description, version, deps)
- Target-specific fields shown/hidden based on selection
- Body textarea with placeholder template
- Live preview panel (pre element)
- File path display showing where to save for each CLI
- Dependency graph visualization
- Download and Send-to-Validator buttons
Reference views (commands, tools, APIs):
- Search input
- Category filter
- Each item shows: name/command, description, usage guidance
- Click to copy, with toast confirmation
- Usage guidance paragraph below each item explaining when/how to use it
Dashboard:
- Stat cards row (total items, categories, etc.)
- Quick Actions panel:
- In-browser actions (green "runs here" badge): actually execute
- CLI-only actions (muted "CLI only" badge): copy command and link to docs
- Supporting info panels with clickable items
- Recent items grid linking to the browser view
Before delivering, verify:
node -e "new Function(scriptContent)" parses without errordata-view has a matching id="view-..." element— with - (AI slop reduction)execCommand fallbackopen filename.html and manually test each tabThe user will test and request changes. Common requests:
target="_blank" links to product documentationA single .html file (typically 60-120KB) that:
file:// protocol in any browser
评论 (0)
暂无评论,成为第一个评论者吧!