agentsclimarketplace

Add agent hooks open code

Skill yukihirop/nagi/.claude/skills/add-agent-hooks-open-code

nagi (凪): AI agent orchestration framework (remake nanoclaw)

Install
npx -y skills add yukihirop/nagi --skill add-agent-hooks-open-code

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Add agent-hooks plugin for Open Code containers. Sends tool execution and session start notifications to chat channels. Triggers on "add open code hooks", "enable open code hooks", "setup open code hooks".

SKILL.md

3.9 KB, as published. Nobody here has run it

Add Agent Hooks (Open Code)

Step 0: Language selection

Before proceeding with any other steps in this skill, ask the user which language to continue in using AskUserQuestion. Keep this initial prompt in English because the preferred language is not yet known.

  • Question: Which language should I continue in?
  • Options: English, 日本語 (Japanese)

Use the selected language for all subsequent user-facing messages and for every further AskUserQuestion prompt in this skill. Do not translate code, file paths, shell commands, or file contents.

Enable PostToolUse and SessionStart hooks for Open Code containers that send real-time notifications to the chat channel.

What it does

  • PostToolUse — Sends a message like 🔧 `Bash: ls -la /workspace/group` to the chat channel after each tool execution
  • SessionStart — Sends 💭 Thinking... when a new session begins

Steps

1. Check prerequisites

test -f deploy/{ASSISTANT_NAME}/host/entry.ts && echo "ENTRY_EXISTS" || echo "ENTRY_MISSING"
test -f deploy/templates/container/open-code/entry.template.ts && echo "TEMPLATE_EXISTS" || echo "TEMPLATE_MISSING"

If deploy/{ASSISTANT_NAME}/host/entry.ts is missing, run /setup first.

2. Create agent-hooks plugin for Open Code

Check if plugin already exists:

test -d container/open-code/plugins/agent-hooks && echo "EXISTS" || echo "MISSING"

If missing, copy from Claude Code's plugin (they share the same IPC-based logic):

mkdir -p container/open-code/plugins/agent-hooks
cp container/claude-code/plugins/agent-hooks/index.mjs container/open-code/plugins/agent-hooks/index.mjs

3. Enable hooks in deploy/{ASSISTANT_NAME}/host/entry.ts (host side)

Read deploy/{ASSISTANT_NAME}/host/entry.ts and check if registerHooksPlugin is already called.

If not present, add after the MCP plugin registrations:

// Register agent hooks (PostToolUse / SessionStart notifications to chat)
orchestrator.registerHooksPlugin({
  postToolUse: true,
  sessionStart: true,
});

4. Enable hooks in deploy/templates/container/open-code/entry.template.ts (container side)

Read deploy/templates/container/open-code/entry.template.ts and check if the agent-hooks plugin is loaded.

If not present, ensure the plugin import block exists:

try {
  const pluginPath = "/app/agent-plugins/agent-hooks/index.mjs";
  const agentHooks = await import(/* webpackIgnore: true */ pluginPath);

  plugins.push({
    name: "agent-hooks",
    createHooks: (
      chatJid: string,
      groupFolder: string,
      hooksConfig: { postToolUse?: boolean; sessionStart?: boolean; skipTools?: string[] } | undefined,
      log: (msg: string) => void,
    ) => ({
      ...(hooksConfig?.postToolUse !== false ? {
        PostToolUse: [{ hooks: [agentHooks.createPostToolUseHook(chatJid, groupFolder, hooksConfig?.skipTools, log)] }],
      } : {}),
      ...(hooksConfig?.sessionStart !== false ? {
        SessionStart: [{ hooks: [agentHooks.createSessionStartHook(chatJid, groupFolder, log)] }],
      } : {}),
    }),
  });
} catch {
  // Plugin not available, skip
}

5. Sync local entry.ts

cp deploy/templates/container/open-code/entry.template.ts deploy/{ASSISTANT_NAME}/container/open-code/entry.ts

Or run /deploy and select Open Code.

6. Rebuild and restart

./container/open-code/build.sh
launchctl kickstart -k gui/$(id -u)/com.nagi.{ASSISTANT_NAME}
sleep 2
launchctl list | grep com.nagi.{ASSISTANT_NAME}

7. Test

Tell user to send a message in Slack/Discord that triggers tool use.

Expected: tool execution notifications appear in the chat channel.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.