moonlight-claude-mods

skill
Guvenlik Denetimi
Basarisiz
Health Uyari
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Basarisiz
  • exec() — Shell command execution in mod-blast-radius/hooks/look.tsx
  • exec() — Shell command execution in mod-blast-radius/hooks/outside.ts
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

Mods for Claude Code's terminal: a pill row of side panels (skills, prompts, files, agent progress, heads-up notes), hover tips, and safety checks that hold risky commands. One shared Moonlight look, each mod independent.

README.md

moonlight-claude-mods

Add-ons for the Claude Code terminal: panels, safety checks and pills (small clickable labels in a row above the prompt). They need Claude Code 2.1.287 or newer, and they are tested on Windows Terminal and macOS iTerm2.

Install

[!WARNING]
Mods are not sandboxed: they run with your permissions.

Not sure which ones you want? Start with mod-manager. It lists every mod, installs the ones you tick, turns them on and off, and tells you when there are updates. From your terminal:

claude plugin install mod-manager --marketplace v-amorim/moonlight-claude-mods

It adds the marketplace too. Then start Claude Code, and click Open setup on the card above the prompt, or the gear pill.

One mod, inside Claude Code, using any name from the list of mods:

/plugin marketplace add v-amorim/moonlight-claude-mods
/plugin install mod-transcript@claude-mods
/reload-plugins

/plugin install asks where to install the mod. Choose Install for you (user scope) and press Enter. Press Esc to close the plugin screen, then run /reload-plugins.

All 13 mods at once, from your terminal
  1. Add this repo as a plugin marketplace:

    claude plugin marketplace add v-amorim/moonlight-claude-mods
    
  2. Install every mod. In bash or zsh:

    for mod in mod-menu mod-manager mod-skill-panel mod-prompts mod-file-tree mod-transcript mod-model-effort mod-heads-up mod-progress mod-next-steps mod-wrap-up mod-blast-radius mod-collision-guard; do
      claude plugin install "$mod@claude-mods" --scope user
    done
    

    In PowerShell:

    'mod-menu','mod-manager','mod-skill-panel','mod-prompts','mod-file-tree','mod-transcript','mod-model-effort','mod-heads-up','mod-progress','mod-next-steps','mod-wrap-up','mod-blast-radius','mod-collision-guard' | ForEach-Object { claude plugin install "$_@claude-mods" --scope user }
    

    Ignore any note about settings not set yet: every setting has a default.

  3. Run /reload-plugins in an open session, or start a new one.

Each mod works alone, with or without mod-manager.

See them in action

Every terminal mod in 133 seconds
https://github.com/user-attachments/assets/a693419b-9732-4a59-9bd6-07d550e30943
Narration

This is Claude Code. Now with Moonlight. Moonlight mods add what the terminal never had: a row of panels, right under the prompt. Forget the skill names. Start typing and the right one finds you. Then Claude goes to work. A turn full of tool calls, and the answer still stays on top. Name a color, and you see it. Every file it touches shows up as it happens. Click one to replay it. Agents in the background report in, with their gates and live output. If something important slips past while you're busy, a quiet note catches it. A risky command stops before it runs, and Haiku explains, in plain words, what it would do. When the turn ends, the next step is one key away. Don't like one? Switch it off. Your session keeps going. And when the context fills up, the work carries over to a fresh session. Thirteen mods. Use one, or all of them. Find them on GitHub.

Without mods With mods

What each mod does

Click a name for its screenshots, features and settings.

Mod What it does How to open it
mod-menu The switch that hides or shows the pill row above the prompt, plus its hover tips; each panel mod draws its own pill /mod-menu
mod-manager Installs, turns on and off, and updates mods, and edits their settings The gear pill, or /mod-manager
mod-skill-panel Lists your skills and agents; a click adds one to the prompt Skills pill
mod-prompts Every prompt of the session; jump back to any of them Prompts pill
mod-file-tree The files Claude read and changed, with a replay of each edit Files pill
mod-transcript Chat bubbles for you and Claude, each finished turn folded to one line you can open, Bash commands in shell colors Automatic
mod-model-effort Shows the model and effort level; a click changes either The model pill
mod-heads-up Now and then flags one thing you should know but might miss, kept by turn in a panel Automatic, or the Heads up pill
mod-progress The main session, every subagent and every agent of a workflow run: model, effort, context fill, tokens, time and gate progress, plus the background shells and monitors each one started, with their live output Progress pill
mod-next-steps Suggests up to three next prompts after each turn Automatic
mod-wrap-up Hands off to a fresh session, or fills /compact with what to keep Wrap up pill
mod-blast-radius Holds a risky shell command until you choose Cancel or Run Automatic
mod-collision-guard Asks before editing a file another session just changed Automatic

Where each mod draws on the screen:

---
config:
  theme: base
  themeVariables:
    darkMode: true
    background: "#0D0E17"
    mainBkg: "#141726"
    primaryColor: "#141726"
    primaryTextColor: "#EEEEFA"
    primaryBorderColor: "#7386d0"
    secondaryColor: "#252A42"
    secondaryTextColor: "#EEEEFA"
    secondaryBorderColor: "#8A9BE0"
    tertiaryColor: "#7386D0"
    tertiaryTextColor: "#EEEEFA"
    tertiaryBorderColor: "#A2B0EA"
    lineColor: "#7386d0"
    textColor: "#EEEEFA"
    titleColor: "#EEEEFA"
    nodeBorder: "#7386d0"
    nodeTextColor: "#EEEEFA"
    clusterBkg: "#1C2033"
    clusterBorder: "#252A42"
    edgeLabelBackground: "#141726"
    arrowheadColor: "#7386d0"
    border1: "#7386d0"
    border2: "#7E86A4"
    activationBorderColor: "#ffcb6b"
    errorBkgColor: "#7386D0"
    errorTextColor: "#EEEEFA"
    fontFamily: "Mulish, system-ui, sans-serif"
    fontSize: "14px"
---
block-beta
  %% block-beta takes no markdown-string labels, so no label wraps: each one gets a cell wide enough for it.
  columns 5
  block:main:3
    columns 3
    transcript["Transcript"]:3
    transcriptmod["mod-transcript"]:3
    band["Above the prompt"]:3
    headsup["mod-heads-up"]:3
    nextsteps["mod-next-steps"] blast["mod-blast-radius"] wrapup["mod-wrap-up"]
    menu["mod-menu"] effort["mod-model-effort"]:2
    toasts["Messages from every mod"]:3
    prompt["Prompt, Claude Code's own"]:3
  end
  block:side:2
    columns 1
    sidebar["Sidebar"]
    skills["mod-skill-panel"]
    prompts["mod-prompts"]
    files["mod-file-tree"]
    progress["mod-progress"]
    manager["mod-manager"]
    details["mod-blast-radius"]
    headsuppanel["mod-heads-up"]
  end
  classDef region fill:#252A42,stroke:#252A42,color:#EEEEFA
  classDef ghost fill:transparent,stroke:#7E86A4,stroke-dasharray:4 4,color:#7E86A4
  class transcript,band,sidebar region
  class prompt ghost

Icons and Nerd Fonts

The mods draw safe Unicode symbols, so they work in any terminal. With a Nerd Font they show sharper icons instead. You don't need one.

Without a Nerd Font With a Nerd Font

A Nerd Font is a programming font with thousands of icons added to it. To use one:

  1. Download one from nerdfonts.com, such as JetBrainsMono Nerd Font, and install it.
  2. Set it as your terminal's font. In Windows Terminal, that's Settings, then your profile, Appearance, Font face; other terminals keep it in their profile or font settings.
  3. Start a new Claude Code session.

The mods find the font on their own in Windows Terminal, iTerm2, VS Code, Ghostty, kitty, WezTerm, Alacritty, GNOME Terminal and Konsole. In any other terminal, set the Icons setting from auto to nerd: for all mods at once from the gear pill (mod-manager), or per mod with /mod-<name> settings.

Each mod up close

Click a mod to open its video and a link to its full page.

mod-menu: Each panel mod draws its own pill in one row. Hover one to see what it does.
Hovering an entry shows its tip
https://github.com/user-attachments/assets/f0bb82f3-55aa-4e9e-b195-1744ce13e03f

Full page

mod-manager: Start from the first-run card, read what a mod's model calls cost, and apply a toggle.
The first-run card, a mod's spend, and a toggle
https://github.com/user-attachments/assets/362d6469-ed76-4465-a7f0-b6b4457a7f2d

Full page

mod-file-tree: The files Claude touches, colored by what happened to them.
Live while Claude works
https://github.com/user-attachments/assets/92fb4b27-e977-4ea1-a553-32bc9e695040

Full page

mod-next-steps: Up to three next prompts. Click one, or type its number, to fill the prompt.
Picking one by its digit
https://github.com/user-attachments/assets/d89e12c2-c107-421e-ba16-653f2ae55deb

Full page

mod-prompts: Every prompt of the session; pick one to read it again.
Pick a prompt to read it
https://github.com/user-attachments/assets/0cf0064f-0498-4f0a-85cc-18e5256cfcd3

Full page

mod-skill-panel: Your skills and agents in one panel; click one to add it to the prompt.
Tags while typing /, add a skill, then the settings
https://github.com/user-attachments/assets/9dc338ca-887f-4cc3-881e-e3967c364d59

Full page

mod-transcript: Each finished turn folds to one line; open it to see every step. A button on a reply's edge copies it, and hex colors in a reply show as swatches.
Unfolding a turn
https://github.com/user-attachments/assets/187f612b-2783-4df1-8b77-57d38846460d

Full page

mod-model-effort: The model and its effort level, one click to change.
Effort on hover, models on click
https://github.com/user-attachments/assets/bc90d5e3-6bf5-4981-8bdd-410abb7465c8

Full page

mod-heads-up: Now and then, one thing you should know; every note stays in its panel.
The panel and a note opened
https://github.com/user-attachments/assets/6600f825-6a46-4f1d-91bb-0d3e00a7fc24

Full page

mod-progress: Every agent at a glance: its current step, model, effort, context, tokens, time and gates, with the background shells it started. A click on a shell opens its full command and live output.
Two agents running, opened from the pill
https://github.com/user-attachments/assets/248259f2-7cc2-4b5c-b237-a68fc09490c4

Full page

mod-blast-radius: A risky command waits for your answer. Type 1, 2 or 3 into the empty prompt, or click.
A risky command held
https://github.com/user-attachments/assets/511d4e1b-98f7-4d31-a3bf-a88f821dcc52

Full page

mod-collision-guard: Another session just edited this file, so Claude asks first.
Asking before an edit

Full page

mod-wrap-up: Pick what carries over, then hand off or compact; past a context mark it hands off by itself. Played at double speed.
Compact, start to end
https://github.com/user-attachments/assets/d0d12e0a-4206-4dd2-a63c-dacc3a7200d2
Auto handoff at the mark: countdown, clear, carry on
https://github.com/user-attachments/assets/8f6c31b4-03c9-44c4-aebe-19d5b93c5e1e

Full page

Everyday use

Goal How
Turn one off The gear pill (mod-manager), or claude plugin disable <name>@claude-mods
Change its settings The gear pill, or /mod-<name> settings
Remove one claude plugin uninstall <name>@claude-mods
Apply changes in an open session /reload-plugins
Update to the latest version claude plugin update <name>@claude-mods, or Update on the card mod-manager shows
Update on their own Auto-update is off for unofficial marketplaces; turn it on in /plugin, under Marketplaces, then claude-mods
Try one mod without installing it git clone https://github.com/v-amorim/moonlight-claude-mods, then claude --plugin-dir ./moonlight-claude-mods/mod-transcript
Load the clone in every session Add each mod folder of the clone to env.CLAUDE_CODE_PLUGIN_DIRS in ~/.claude/settings.json, separated by ; on Windows and : elsewhere
Pass a slash command from Git Bash MSYS_NO_PATHCONV=1 claude "/mod-<name> settings", since Git Bash rewrites /x into a Windows path

Build your own

Make a new mod
  1. Clone the repo, then copy an existing mod's folder to <clone>/<name> and rename it in plugin.json and its test.
  2. Check it with claude plugin validate <clone>/<name>.
  3. Test it with claude plugin test <clone>/<name>.
  4. Try it with claude --plugin-dir <clone>/<name>, then add its folder to CLAUDE_CODE_PLUGIN_DIRS.

Each mod's folder:

<mod-name>/
  .claude-plugin/plugin.json     manifest
  hooks/hooks.json               { "modules": ["./register.tsx"] }, plus command hooks if the mod has any
  hooks/register.tsx             the hooks module
  tests/*.test.tsx               run by claude plugin test
  showcase.json                  optional: tagline, features, actions, example cards

A mod's hooks.json always lists its modules. Seven mods also ship plain shell command hooks next to them:

{
  "modules": ["./register.tsx"],
  "hooks": {
    "SessionStart": [{ "hooks": [{ "type": "command", "command": "…appends the payload to the bridge file…" }] }],
    "SessionEnd": [{ "hooks": [{ "type": "command", "command": "…deletes the session's bridge file…" }] }]
  }
}

Each command hook appends the event's JSON payload as one line to ~/.claude/mods-data/<mod>/bridge/<session id>.jsonl, or under $CLAUDE_CONFIG_DIR/mods-data/ when that is set. The mod reads the file every 250 ms. A record can hold the session id, the working folder, the transcript path and, for Stop-type events, the last assistant message. SessionEnd deletes the session's file, and SessionStart deletes files older than 7 days. The hooks need a POSIX shell (Git Bash on Windows). Without one they write nothing, and the mod falls back to what it can find on its own.

Mod Events it bridges
mod-prompts, mod-heads-up, mod-file-tree SessionStart
mod-transcript SessionStart, PermissionDenied, StopFailure
mod-progress SessionStart, Stop, SubagentStop, StopFailure
mod-model-effort SessionStart, PostModelSwitch, ConfigChange
mod-wrap-up SessionStart, including the one after a compact

Every one of them also hooks SessionEnd, to delete its file. Some plans block plugin hooks on these events. The mods then run on what they can find on their own.

The shared standard

Every mod follows the same rules:

Rule In short
Name Plugin, folder and command share one name, mod-<name>
Shared files Each mod carries its own copy of the shared files, so it works alone
Panes Tabs, a one-line hint, then bordered sections
Controls Every control is a pill; mouse only, so the prompt keeps the keyboard
Icons Plain symbols everywhere, Nerd Font icons when the terminal has one

One panel shows at a time, and no mod needs to know the others:

---
config:
  theme: base
  sequence:
    mirrorActors: false
  themeVariables:
    darkMode: true
    background: "#0D0E17"
    mainBkg: "#141726"
    primaryColor: "#141726"
    primaryTextColor: "#EEEEFA"
    primaryBorderColor: "#7386d0"
    secondaryColor: "#252A42"
    secondaryTextColor: "#EEEEFA"
    secondaryBorderColor: "#8A9BE0"
    tertiaryColor: "#7386D0"
    tertiaryTextColor: "#EEEEFA"
    tertiaryBorderColor: "#A2B0EA"
    lineColor: "#7386d0"
    textColor: "#EEEEFA"
    titleColor: "#EEEEFA"
    actorBkg: "#141726"
    actorBorder: "#7386d0"
    actorTextColor: "#EEEEFA"
    actorLineColor: "#7386d0"
    signalColor: "#7386d0"
    signalTextColor: "#EEEEFA"
    labelBoxBkgColor: "#252A42"
    labelBoxBorderColor: "#7386d0"
    labelTextColor: "#EEEEFA"
    loopTextColor: "#EEEEFA"
    noteBkgColor: "#7386D0"
    noteTextColor: "#EEEEFA"
    noteBorderColor: "#7386d0"
    activationBkgColor: "#252A42"
    activationBorderColor: "#ffcb6b"
    arrowheadColor: "#7386d0"
    errorBkgColor: "#7386D0"
    errorTextColor: "#EEEEFA"
    fontFamily: "Mulish, system-ui, sans-serif"
    fontSize: "14px"
    sequenceNumberColor: "#0D0E17"
---
sequenceDiagram
  actor you as You
  participant files as mod-file-tree
  participant cc as Claude Code
  participant skills as mod-skill-panel
  you->>files: click Files
  files->>cc: open the Files pane
  cc->>skills: a pane opened
  skills->>cc: close the Skills pane

License and credits

Made by Vinicius Amorim and released under the MIT license. Bug reports and pull requests are welcome, especially from Linux terminals, which are untested.

Yorumlar (0)

Sonuc bulunamadi