co-mono/packages/coding-agent/examples/extensions/bash-spawn-hook.ts
2026-02-01 23:17:51 +01:00

30 lines
692 B
TypeScript

/**
* Bash Spawn Hook Example
*
* Adjusts command, cwd, and env before execution.
*
* Usage:
* pi -e ./bash-spawn-hook.ts
*/
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
import { createBashTool } from "@mariozechner/pi-coding-agent";
export default function (pi: ExtensionAPI) {
const cwd = process.cwd();
const bashTool = createBashTool(cwd, {
spawnHook: ({ command, cwd, env }) => ({
command: `source ~/.profile\n${command}`,
cwd,
env: { ...env, PI_SPAWN_HOOK: "1" },
}),
});
pi.registerTool({
...bashTool,
execute: async (id, params, onUpdate, _ctx, signal) => {
return bashTool.execute(id, params, signal, onUpdate);
},
});
}