feat: ClawTap v0.1.0 — initial release
Multi-adapter mobile UI for AI coding assistants. Supports Claude Code, Codex CLI, and Gemini CLI through one interface. Features: - Real-time bidirectional sync via tmux + WebSocket - Cross-AI review (send one AI's output to another for review) - Multi-review tabs with minimize/expand - Push notifications (PWA) with smart session-aware filtering - Three-channel event system (hooks, file watcher, pane monitor) - Voice input, image paste, draft persistence - Terminal-native design (JetBrains Mono, dark theme, pixel art claw) - CLI with --adapter flag on every command - Zero-overhead fire-and-forget hooks
This commit is contained in:
Executable
+33
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env node
|
||||
// Standalone hook management — no server needed.
|
||||
// Usage: node hooks-cli.mjs install|uninstall [adapter]
|
||||
// adapter: claude, codex, gemini (optional — defaults to all)
|
||||
import { ClaudeHookConfig } from '../server/adapters/claude/hook-config.js';
|
||||
import { CodexHookConfig } from '../server/adapters/codex/hook-config.js';
|
||||
import { GeminiHookConfig } from '../server/adapters/gemini/hook-config.js';
|
||||
|
||||
const cmd = process.argv[2];
|
||||
const adapterArg = process.argv[3] || null; // optional: claude, codex, gemini
|
||||
|
||||
if (!cmd || !['install', 'uninstall'].includes(cmd)) {
|
||||
console.error('Usage: hooks-cli.mjs install|uninstall [claude|codex|gemini]');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if (adapterArg && !['claude', 'codex', 'gemini'].includes(adapterArg)) {
|
||||
console.error(`Unknown adapter: ${adapterArg}. Use: claude, codex, gemini`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const adapters = {
|
||||
claude: new ClaudeHookConfig(),
|
||||
codex: new CodexHookConfig(),
|
||||
gemini: new GeminiHookConfig(),
|
||||
};
|
||||
|
||||
// If adapter specified, only operate on that one; otherwise all
|
||||
const targets = adapterArg ? { [adapterArg]: adapters[adapterArg] } : adapters;
|
||||
|
||||
for (const [name, hook] of Object.entries(targets)) {
|
||||
hook[cmd]();
|
||||
}
|
||||
Reference in New Issue
Block a user