Change Herald OS itself - make and switch themes, fonts and the wallpaper, widgets, the menu bar, control-menu entries, branding, keybindings, settings, routines and hooks
Install the "herald-os-tailor" agent skill from https://github.com/iamlukethedev/Herald-OS/tree/main/plugins/herald-os-bridge/skills/herald-os-tailor into .claude/skills/herald-os-tailor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "herald-os-tailor", 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.
Type 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.
skills CLI
$ npx skills add iamlukethedev/Herald-OS --skill herald-os-tailor -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "herald-os-tailor" agent skill from https://github.com/iamlukethedev/Herald-OS/tree/main/plugins/herald-os-bridge/skills/herald-os-tailor into .agents/skills/herald-os-tailor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "herald-os-tailor", 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.
skills CLI
$ npx skills add iamlukethedev/Herald-OS --skill herald-os-tailor -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "herald-os-tailor" agent skill from https://github.com/iamlukethedev/Herald-OS/tree/main/plugins/herald-os-bridge/skills/herald-os-tailor into .cursor/skills/herald-os-tailor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "herald-os-tailor", 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.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add iamlukethedev/Herald-OS --skill herald-os-tailor -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "herald-os-tailor" agent skill from https://github.com/iamlukethedev/Herald-OS/tree/main/plugins/herald-os-bridge/skills/herald-os-tailor into .gemini/skills/herald-os-tailor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "herald-os-tailor", 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.
Installs 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).
skills CLI
$ npx skills add iamlukethedev/Herald-OS --skill herald-os-tailor -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "herald-os-tailor" agent skill from https://github.com/iamlukethedev/Herald-OS/tree/main/plugins/herald-os-bridge/skills/herald-os-tailor into .github/skills/herald-os-tailor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "herald-os-tailor", 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.
skills CLI
$ npx skills add iamlukethedev/Herald-OS --skill herald-os-tailor -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "herald-os-tailor" agent skill from https://github.com/iamlukethedev/Herald-OS/tree/main/plugins/herald-os-bridge/skills/herald-os-tailor into .opencode/skills/herald-os-tailor/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "herald-os-tailor", 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.
Facts
Skill name
herald-os-tailor
GitHub stars
408
Token cost
~2.8k tokens
SKILL.md length
1,326 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
MIT
At a glance
Change Herald OS itself - make and switch themes, fonts and the wallpaper, widgets, the menu bar, control-menu entries, branding, keybindings, settings, routines and hooks
Works in 6 steps: Write it into… → manifest.json → index.html loads the SDK and its own… → …
Documents & Office work in your project
SKILL.md covers Themes, Fonts and wallpaper, Widgets and The menu bar, plus 5 more sections
Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
What it does
Herald Os Tailor is an agent skill from iamlukethedev/Herald-OS. Change Herald OS itself - make and switch themes, fonts and the wallpaper, widgets, the menu bar, control-menu entries, branding, keybindings, settings, routines and hooks
Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Documents & Office. It works with Linux. The repository describes itself as: An agent-native operating system, with Hermes Agent as the interface. Independent project, not affiliated with Nous Research. The licence is MIT.
When your agent uses it
Documents & Office work in your project
Example prompts
“/herald-os-tailor”
Workflow steps
6 steps, taken from the first numbered list in SKILL.md.
1Write it into ~/.config/herald-os/plugins// with write_file. is lowercase
2manifest.json
3index.html loads the SDK and its own script file. Inline is blocked; inline styles
4The SDK in widget.js
5Never turn it on yourself. Say: "It's in Settings > Plugins; turn on Weather strip there after
6To share it, the folder is a git repository; others install it with herald-os plugin add
What it can do on your machine
Read from SKILL.md and the folder at commit 7babe0c. It shows what the files ask for, not the result of running them.
Tool permissions
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.
Runs code
No scripts in the folder and no shell commands in SKILL.md (its code samples are json, html and kdl).
From the folder's file list and the shell code blocks in SKILL.md.
Network
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Herald Os Tailor loads about 2.8k tokens when it runs. Until then it costs about 47 tokens; SKILL.md has 1,326 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~47
When it runs· the whole SKILL.md, loaded when a task matches
~2.8k
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.
Safety
Auto-check passed
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.
Download SKILL.mdSave it as .claude/skills/herald-os-tailor/SKILL.md (or your agent's skills folder).
name
herald-os-tailor
description
Change Herald OS itself - make and switch themes, fonts and the wallpaper, widgets, the menu bar, control-menu entries, branding, keybindings, settings, routines and hooks
Tailor Herald OS
Herald OS is meant to be shaped by the person using it, and by you on their behalf. Use this when
they ask to change how Herald OS looks or behaves: "make me a calm green theme", "use a bigger
font", "add a shortcut for Obsidian", "do this every time I log in".
Ground rules:
Change settings through os_ui commands, never by editing ~/.hermes/herald-os/prefs.json
while the shell runs (it rewrites that file).
Say what you changed and how to undo it in one sentence ("Switched to Dusk; say 'use the
ocean theme' to go back").
Ask before anything large or hard to undo, and keep a copy of any file you replace.
Themes
A theme recolours everything at once: the shell, your own CLI skin and, on Herald OS Linux, the
compositor, GTK apps, the lock screen and the terminal.
os_ui action=run command=theme.list, then theme.set args={"theme": "<name>"}.
From an image: theme.generate args={"image": "<path>", "name": "<label>"} (optional
"scheme": "dark" | "light"). It saves the theme, makes the image the wallpaper and applies it.
From a description ("a sunset theme", "something like old paper"): write the theme yourself.
Create ~/.config/herald-os/themes/<name>/theme.json with write_file, then run theme.set.
<name> is the folder name: lowercase letters, digits and dashes. The file:
Every colour is #rrggbb. Text (fg) needs at least 7:1 contrast against bg, the accent at
least 3:1. Dark themes keep bg very dark; light themes set "scheme": "light", a very light
bg, dark fg, and "gtk": {"color_scheme": "default", "theme": "Adwaita"}. bg2 and
surface are a few steps from bg toward the accent (dark) or toward white (light). A
"terminal" block (background, foreground, cursor, a 16-colour palette) is optional;
the shell derives one when it is missing. "wallpaper" is "default" (the drawn Herald
wallpaper, tinted to the theme) or an image file inside the theme's folder.
Someone shared a theme repository: theme.install args={"url": "https://…"}. Only colours and
images are kept.
Undo: theme.set args={"theme": "herald-ocean"}, the default.
Fonts and wallpaper
font.list (optional filter), then font.set args={"family": "Inter"} for the interface or
{"family": "JetBrains Mono", "kind": "mono"} for code and the terminal. "default" resets.
wallpaper.set args={"image": "<path>"}, or "default" for the drawn wallpaper.
Widgets
A widget is a small web page that sits in the menu bar (a 24 px strip), on the Overview (a card)
or in its own window. Make one when they want something to glance at: "a strip with the weather",
"a CPU meter", "a countdown to Friday".
Write it into ~/.config/herald-os/plugins/<id>/ with write_file. <id> is lowercase
letters, digits and dashes, and is the folder name.
manifest.json:
json
{
"id": "weather-strip",
"name": "Weather strip",
"version": "1.0.0",
"description": "The temperature here, in the menu bar.",
"entry": "index.html",
"placement": ["menubar"],
"size": { "width": 90, "height": 96 },
"permissions": ["storage"],
"hosts": ["api.open-meteo.com"]
}
placement: any of menubar, overview, panel. size.width is its menu-bar width (up
to 240), size.height its Overview card height.
permissions: only what it needs. stats (CPU, memory, disks, battery), notify,
storage (its own small key-value store) and run:<command.id> for each Herald OS command
it runs, such as run:page.open. Commands that change things still ask the person.
hosts: the HTTPS hosts it fetches from. Nothing else is reachable, and the API must allow
cross-origin requests (most public JSON APIs do).
index.html loads the SDK and its own script file. Inline <script> is blocked; inline styles
are fine. Keep the background transparent so it sits on the shell's glass.
herald.notify(title, body), herald.storage.get(key) and herald.storage.set(key, value).
herald.run('page.open', { name: 'missions' }) runs a Herald OS command it was granted.
herald.placement is where it sits (menubar, overview or panel), also set as
data-placement on <html> for CSS.
The theme arrives as CSS variables: --herald-bg, --herald-surface, --herald-fg,
--herald-fg-dim, --herald-accent, --herald-line, --herald-ok, --herald-warn,
--herald-urgent; herald.onTheme(colors => …) hears changes.
Never turn it on yourself. Say: "It's in Settings > Plugins; turn on Weather strip there after
checking what it asks for." os_ui action=run command=plugin.manage shows that page. Once it is
on, every saved change reloads it, so iterate by editing the files.
To share it, the folder is a git repository; others install it with herald-os plugin add <url>
(it arrives turned off for them too).
The menu bar
bar.layout lists the items left to right (search, widgets, voice, indicators, usage, wifi,
bluetooth, sound, battery, notifications, clock) and which are shown.
bar.hide item=bluetooth, bar.show item=battery. The status lights (indicators: recording,
dictation, switches that are on) always show; say why if asked to hide them.
bar.move item=clock position=first (also last, a number with 1 leftmost, or before= /
after= another item).
bar.reset puts it all back. Settings > Appearance > Menu bar shows the result.
Show full SKILL.md (573 more words)Show less
Control-menu entries
The control menu (Mod+M) takes the person's own entries from ~/.config/herald-os/menu.json.
Write it with write_file, keeping any entries already there:
Each entry has a label and exactly one action: herald-os (a herald-os command as a list of
words), exec (a program and its arguments, as a list; ~/ is the home folder; no shell, so no
pipes), url (http or https) or command (a Herald OS command id and its args).
group puts it in an existing group (install, remove, update, style, trigger,
capture, toggle, system, hermes); otherwise it sits under "Yours". icon is one of star,
app, terminal, world, bolt, folder, notes, music, camera, code, calendar, mail, chat, heart,
home, rocket.
The menu reads the file each time it opens. herald-os menu check shows what it understood and
any problems.
Branding
branding.set args={"logo": "<image path>"} puts a PNG, JPEG, WebP or SVG logo at the top of
Settings > About; "name": "Acme Corp" adds a line under it. The image is copied, so the
original can move.
branding.set args={"lock": "<image path>"} (PNG or JPEG) is the picture behind the password
ring on the Herald OS Linux lock screen.
branding.reset (or what=logo, lock, name) goes back to the Herald logo and the theme's
lock screen.
Settings
The shell's settings are commands: accent.set, dock.autoHide, motion.reduce,
voice.engine.set, voice.wake.set, crash.help, theme.followHermes and more. Run
os_ui action=list for the full list with arguments, and settings.open section=<id> to show the
person the result.
Keybindings (Herald OS Linux)
The compositor is niri. The Herald OS session starts it with ~/.config/niri/herald-os.kdl, which
Herald OS renders from its template at every login and whenever the keymap changes, so never edit
it: the next login undoes the change. The person's own binds and other per-machine settings go in
~/.config/niri/local.kdl, which that file includes last and Herald OS never touches. Add binds
there, not to ~/.config/niri/config.kdl, which the Herald OS session does not read:
niri reloads the file as soon as it is saved. Check it with
niri validate -c ~/.config/niri/herald-os.kdl in the terminal (it reads local.kdl through the
include), and read the hotkey overlay (Mod+K) before reusing a key: Herald OS already binds many
Mod+… combinations. Any herald-os command can be a bind
(spawn "herald-os" "theme" "set" "herald-dusk").
To change one of Herald OS's own keys, bind the same key in local.kdl: it is included last, and
niri lets a later bind replace an earlier one. To switch a key off, bind it to nothing:
Mod+Q { spawn "true"; }. Only bind a key once inside local.kdl itself; niri refuses a file that
binds the same key twice.
Inside Omarchy (Herald OS as an app on Hyprland), Herald's keys are in
~/.config/hypr/herald-os.lua on Omarchy 4 (herald-os.conf on Omarchy 3), which
herald-os omarchy install rewrites. Change them in the person's own Hyprland config instead: on
Omarchy 4, below the require("hypr.herald-os") line at the end of ~/.config/hypr/hyprland.lua
(it has to run after Herald's), hl.unbind("SUPER + ALT + H") and then their own
o.bind("KEYS", "description", "command"); on Omarchy 3, unbind = SUPER ALT, H and then their
own bind = … line. Check the result with hyprctl configerrors after hyprctl reload.
Routines
Something on a schedule: automation.create args={"name": …, "schedule": "every weekday at 9am", "prompt": …}.
Something each time an event happens ("every time I log in", "when the battery is low",
"when Safari crashes"): automation.create with "event" (and "match") instead of a schedule,
or a hook script for chores that need no Hermes. The herald-os skill lists the events and how
hooks run.
Herald Os Tailor 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.
Herald Os Tailor compared with similar skills
Skill
Stars
Used in
Tokens
Auto-check
Licence
Repo updated
Herald Os Tailor this skilliamlukethedev/Herald-OS
Explain or change how the Static Web Server (SWS) serves files — index resolution, MIME types, pre-compressed and on-the-fly compression, Cache-Control, ETag and conditional requests, byte ranges…
A skill your agent uses when scanned Chinese PDFs or image-only books need text EPUB conversion on macOS, Windows, or Linux, especially when OCR text, original underlined proper names, 专名号, or…
Work in Herald Sheets, the spreadsheet in Herald OS - read workbooks, write values and formulas (a formula from a description, explaining one, filling it down), fill a column from examples, clean…
Make and change presentations in Herald Slides, the presentation editor in Herald OS - a deck from a topic (an outline first, a title slide, one idea a slide, short bullets, speaker notes, a closing…
Make and edit pictures in Herald Canvas, the layered image editor in Herald OS - posters, banners, thumbnails, collages and photo fixes through the canvas tool, with editable text and shape layers…
Write and edit documents in Herald Docs, the word processor in Herald OS - letters, cover letters, CVs, reports, memos, meeting notes, proposals, essays and newsletters drafted from a brief or a…
Find documents such as invoices among badly named files, read them, name them clearly and file them where the person keeps them, with a plan they approve and an undo
Change Herald OS itself - make and switch themes, fonts and the wallpaper, widgets, the menu bar, control-menu entries, branding, keybindings, settings, routines and hooks. Herald Os Tailor is an agent skill from iamlukethedev/Herald-OS.
When should I use Herald Os Tailor?
Herald Os Tailor fits situations like: documents & Office work in your project.
How do I install Herald Os Tailor in Claude Code?
Run `npx skills add iamlukethedev/Herald-OS --skill herald-os-tailor -a claude-code`. Or copy the skill folder (plugins/herald-os-bridge/skills/herald-os-tailor in iamlukethedev/Herald-OS) into .claude/skills/herald-os-tailor in your project. Claude Code loads it when a task matches its description.
How do I install Herald Os Tailor in Codex?
Run `npx skills add iamlukethedev/Herald-OS --skill herald-os-tailor -a codex`. Or copy the skill folder (plugins/herald-os-bridge/skills/herald-os-tailor in iamlukethedev/Herald-OS) into .agents/skills/herald-os-tailor in your project. Codex loads it when a task matches its description.
Can I use Herald Os Tailor in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add iamlukethedev/Herald-OS --skill herald-os-tailor -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/herald-os-tailor, .gemini/skills/herald-os-tailor, .github/skills/herald-os-tailor and .opencode/skills/herald-os-tailor in your project.
What does Herald Os Tailor need to run?
SKILL.md names no scripts, command-line tools or credentials: Herald Os Tailor is instructions for the agent only.
Does Herald Os Tailor access the network?
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Is Herald Os Tailor safe to install?
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.
What licence does Herald Os Tailor use?
Herald Os Tailor is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Herald Os Tailor use?
About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
What are the alternatives to Herald Os Tailor?
Skills that share tags, products or a category with Herald Os Tailor: Static File Serving (static-web-server/static-web-server, 2.4k stars), Local AI Search (LeoYeAI/openclaw-master-skills, 2.2k stars), Ppt Compressor (LeoYeAI/openclaw-master-skills, 2.2k stars) and Pdflatex (OpenHands/extensions, 163 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Herald Os Tailor?
iamlukethedev (a GitHub user) maintains it in iamlukethedev/Herald-OS, which has 408 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 10, 2026.
Source: iamlukethedev/Herald-OS on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.