Skills are what your agent can do. Reflexes are how you'd do it.
import { defineReflex, deny, pass } from "@agentreflex/core";
export default defineReflex({
name: "no-force-push",
onToolCall(ctx) {
if (ctx.tool === "Bash" && ctx.command?.includes("--force"))
return deny("open a PR — don't force-push shared history");
return pass();
},
});{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash|Edit|Write",
"hooks": [
{ "type": "command", "command": "arx hook --agent claude" }
]
}
]
}
}Same reflexes, every agent. Switch tabs — the command runs through the hook either way.
Yours to copy, remix, and give back — proactive or protective, every one a file you own.
Keep it in your repo. Hand it to your team. Or give it to everyone.
An instinct in TypeScript, Python, or bash. No SDK, no deploy.
reflexes/your-reflex.tsPull one into any project. It wires itself into every agent you use.
npx agentreflex add no-secretsSend it back — by URL, or a PR to the commons. Now it's everyone's.
arx add github:you/reflexOpen source, MIT, and yours to extend. Bring your reflexes to every agent you code with.