L» Luna Pipes

Install

Three ways to get the binary. After install you have 358 slash commands (310 canonical, 48 shortcuts).

1. From npm.

The fastest path. Requires Node ≥ 18.

npm install -g luna-agents && luna-setup
installed: luna-agents@latest
detected: claude code at ~/.claude
registered: 358 slash commands
next: open Claude Code, try /luna-agents:cmds

2. As a Claude Code plugin.

After the npm install, the plugin is registered automatically. If you skipped luna-setup, or you want to install just the plugin without the CLI, do it inside Claude Code:

Inside Claude Code.
/plugin marketplace add lunaos-ai/luna-agents
marketplace added: luna-agents-marketplace (1 plugin)
/plugin install luna-agents@luna-agents-marketplace
installing: luna-agents
commands: 358 (incl. shortcuts)
agents: 45
mcp: luna-nexa-rag, luna-glm-vision, luna-vision-rag-client
ok. run /reload-plugins to activate.

Already installed something? Re-run luna-setup — it's idempotent.

3. From source.

For contributors and folks who want the head of main.

git clone https://github.com/lunaos-ai/luna-agents && cd luna-agents && npm install && ./setup.sh
cloned, installed, linked. luna binary now points at your working copy.

Verify.

luna --version && luna pipe "persona generate >> ghost \"hello\""
luna 2.0.1
composed: 2 stages
[01] /persona generate
[02] /ghost "hello"
ok.

In Claude Code, type /luna-agents:cmds — you should see 358 commands.

Configure.

Most verbs work without keys. A few (image generation, voice, certain external APIs) need credentials. The runtime reads from your OS keychain first, then .env. Never paste keys into pipes.

luna config set openai_key && luna config set anthropic_key
stored in OS keychain. never written to disk in plaintext.

Troubleshooting.

I don't see all the skills / shortcuts after npm install.

Two causes, both fixable in 10 seconds:

  1. You're on an old version. The full skill set ships from [email protected] onward. Run npm install -g luna-agents@latest and then luna-setup again — it's idempotent.
  2. The plugin wasn't registered with Claude Code. Run luna-setup, or do it manually inside Claude Code with the two /plugin commands above. Then restart Claude Code (it loads plugin manifests at startup).
Force a clean reinstall.
npm uninstall -g luna-agents && npm install -g luna-agents@latest && luna-setup --force
removed: 1 package
installed: [email protected] (358 commands, 45 agents)
registered: claude code plugin (forced)
next: restart claude code

The plugin is registered but commands don't autocomplete.

Claude Code caches the slash-command index per session. Restart it. If still empty, check ~/.claude/plugins/luna-agents/claude-plugin.json exists and points to commands/ — that's where the registrar reads from.

Where to read next.