diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 8c3d6c4..7f8cf46 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -13,12 +13,12 @@ "state": { "type": "markdown", "state": { - "file": "500 archive/510 Daily/ThinkPad Recommendations.md", + "file": "300 areas/350 AI/Pi Agent Extensions & Skills.md", "mode": "preview", "source": true }, "icon": "lucide-file", - "title": "ThinkPad Recommendations" + "title": "Pi Agent Extensions & Skills" } } ] @@ -53,7 +53,7 @@ "state": { "type": "search", "state": { - "query": "Thinkpad", + "query": "skills", "matchingCase": false, "explainSearch": false, "collapseAll": false, @@ -182,10 +182,10 @@ "state": { "type": "file-properties", "state": { - "file": "500 archive/510 Daily/ThinkPad Recommendations.md" + "file": "300 areas/350 AI/Pi Agent Extensions & Skills.md" }, "icon": "lucide-info", - "title": "File properties for ThinkPad Recommendations" + "title": "File properties for Pi Agent Extensions & Skills" } } ], @@ -210,11 +210,12 @@ }, "active": "29ff3dd1c6bfd474", "lastOpenFiles": [ + "100 inbox/AI Design.md", + "500 archive/510 Daily/ThinkPad Recommendations.md", "100 inbox/Tools to try with AI.md", "000 daily/House Family General.md", "000 daily/Untitled.md", "000 daily/Update Install.md", - "500 archive/510 Daily/ThinkPad Recommendations.md", "200 projects/210 AI Resume/The Modern Web Architecture Landscape Beyond the React Monopoly.md", "400 resources/470 Holidays Travel/Ski Stuf.md", "300 areas/340 Web Dev Coding Software Tools/Untitled.md", @@ -236,7 +237,6 @@ "400 resources/410 Web Pages/Website Design AI.md", "400 resources/410 Web Pages/Metasploit Osint - security hacking.md", "400 resources/410 Web Pages/Sn0int Osint - security hacking.md", - "100 inbox/AI Resume - Content Organization Plan.md", "500 archive/510 Daily", "300 areas/305 Ideas Businesses", "400 resources/470 Holidays Travel", diff --git a/300 areas/350 AI/Pi Agent Extensions & Skills.md b/300 areas/350 AI/Pi Agent Extensions & Skills.md index b28b428..cb387a0 100644 --- a/300 areas/350 AI/Pi Agent Extensions & Skills.md +++ b/300 areas/350 AI/Pi Agent Extensions & Skills.md @@ -1,6 +1,6 @@ --- created: 2026-05-16 -modified: 2026-05-16 +modified: 2026-07-28 type: note tags: - ai @@ -66,6 +66,9 @@ v0.7.0, installed globally. 7 task tools: `TaskCreate`, `TaskList`, `TaskGet`, ` | **openspec-archive-change** | Archive completed changes | | **openspec-explore** | Explore ideas and clarify requirements | | **npm-security** | Scan packages with SafeDep Vet, check typosquatting with npq, wrap installs with Socket Firewall | +| **ste-writing** | Rewrite prose (docs, READMEs, PRs, errors) into ASD-STE100 Simplified Technical English. Removes AI slop. Two modes: strict (procedures) and STE-flavored (general prose). Includes heuristic anti-slop linter (ste-lint.py). | +| **design-build** | Generate production-ready HTML/Tailwind code from design specifications and DESIGN.md design tokens. | +| **design-explore** | Generate UI design mockups as images for exploration and ideation. Supports DESIGN.md for design-token-accurate mockups. | | **markitdown** | Convert files (PDF, Word, Excel, PowerPoint, images, HTML, CSV, JSON, XML, ZIP, EPubs, YouTube) to Markdown for LLM consumption. Image analysis via Qwen 2.5 VL 72B on OpenRouter. | --- @@ -122,6 +125,87 @@ The `markitdown-vision` wrapper auto-sources `OPENROUTER_API_KEY` from `~/.confi --- +## falcode-zellij + +Zellij plugin + agent extensions that track all active AI coding panes (pi, OpenCode, Claude Code) across Zellij sessions in a floating popup. Jump to any pane with one keystroke. Shows attention icons on Zellij tabs when an agent starts/stops working. + +### Components + +| Component | Location | Purpose | +|-----------|----------|---------| +| **Zellij WASM plugin** | `~/.config/zellij/plugins/falcode-zellij-sessions.wasm` | Floating popup UI showing all agent panes | +| **pi extension** | `~/.pi/agent/extensions/falcode.ts` | Reports pi pane status (working/idle) to the Zellij plugin | +| **attention WASM** | `~/.config/zellij/plugins/zellij-attention.wasm` | Shows ⏳/✅ icons on Zellij tabs when agent is active/done | +| **detection script** | `~/.local/state/falcode-zellij/` | Shared state directory for pane status snapshots | + +### Keybindings + +| Key | Action | +|-----|--------| +| `Alt a` | Launch/focus falcode floating popup (config.kdl `shared_except "locked"`) | + +### pi integration + +The `falcode.ts` extension auto-detects Zellij via `ZELLIJ_PANE_ID`/`ZELLIJ_SESSION_NAME` env vars. Outside Zellij it's a no-op. + +- `agent_start` event → writes `"working"` status +- `agent_end` event → writes `"waiting_user_input"` status +- Heartbeat every 60s to keep pane alive +- `FALCODE_NOTIFY_SCRIPT=/bin/true` in home.nix (disables macOS notifications on Linux) + +### Install on new machine + +```bash +# pi extension +mkdir -p ~/.pi/agent/extensions +curl -L https://raw.githubusercontent.com/victor-falcon/falcode-zellij/main/pi-extension/falcode.ts \ + -o ~/.pi/agent/extensions/falcode.ts + +# WASM plugins +mkdir -p ~/.config/zellij/plugins +curl -L https://github.com/victor-falcon/falcode-zellij/releases/latest/download/falcode-zellij-sessions.wasm \ + -o ~/.config/zellij/plugins/falcode-zellij-sessions.wasm +curl -L https://github.com/victor-falcon/falcode-zellij/releases/latest/download/zellij-attention.wasm \ + -o ~/.config/zellij/plugins/zellij-attention.wasm +``` + +### Claude Code integration + +Also has a hook at `~/.local/state/falcode-zellij/falcode-hook.sh` for Claude Code status reporting. See [README](https://github.com/victor-falcon/falcode-zellij#readme) for Claude config. + +### Zellij config (`config.kdl`) + +Already configured in Home Manager: +```kdl +plugins { + falcode location="file:/home/sam/.config/zellij/plugins/falcode-zellij-sessions.wasm" { + state_dir "/home/sam/.local/state/falcode-zellij" + } + attention location="file:/home/sam/.config/zellij/plugins/zellij-attention.wasm" +} + +load_plugins { + "file:/home/sam/.config/zellij/plugins/zellij-attention.wasm" { + enabled "true" + waiting_icon "⏳" + completed_icon "✅" + } +} + +keybinds { + shared_except "locked" { + bind "Alt a" { + LaunchOrFocusPlugin "falcode" { + floating true + move_to_focused_tab true + } + } + } +} +``` + +--- + ## Security Tools (npm Global) Three tools installed globally at `~/.local/share/npm-global/bin/` to guard package installs. @@ -238,6 +322,68 @@ ssh 192.168.20.13 "cd /home/sam/Docker/Containers/headroom && docker compose pul | `/home/sam/Docker/Containers/headroom/.env` | Environment file (on .13) | +## codebase-memory-mcp + +Code intelligence MCP server by DeusData. Single static C binary (~13MB), zero dependencies, 158 languages. Indexes a codebase into a persistent knowledge graph — average repo in milliseconds. 15 MCP tools for structural queries. Runs locally, code never leaves your machine. + +**Install:** +```bash +curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash +``` +Installed to `~/.local/bin/codebase-memory-mcp`. + +**Index a project:** +``` +mcp({ tool: "index_repository", args: '{"repo_path": ".", "mode": "fast"}' }) +``` + +**15 Tools:** + +| Tool | What it does | +|------|-------------| +| `index_repository` | Index a repo (full/moderate/fast/cross-repo-intelligence modes) | +| `search_graph` | BM25 full-text search + semantic vector search for code | +| `query_graph` | Cypher queries — multi-hop patterns, complexity analysis | +| `trace_path` | Follow call chains, data flow, or cross-service HTTP via Route nodes | +| `get_code_snippet` | Read source code for a function/class/symbol | +| `get_graph_schema` | Show available node labels and edge types | +| `get_architecture` | High-level architecture: packages, clusters, routes, entry points | +| `search_code` | Grep + graph enrichment, ranked by structural importance | +| `list_projects` | List all indexed projects | +| `delete_project` | Remove a project from the graph | +| `index_status` | Check index freshness and stats | +| `detect_changes` | Find files changed since last index | +| `manage_adr` | Architecture Decision Records | +| `ingest_traces` | Import OpenTelemetry traces into the graph | + +**MCP config** (`~/.pi/agent/mcp.json`): +```json +{ + "mcpServers": { + "codebase-memory": { + "command": "/home/sam/.local/bin/codebase-memory-mcp", + "lifecycle": "lazy" + } + } +} +``` + +**Install on remote machines:** +```bash +ssh sam@192.168.20.51 "curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash" +ssh sam@192.168.20.13 "curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash" +``` + +**UI mode** (graph visualization at `localhost:9749`): +```bash +curl -fsSL .../install.sh | bash -s -- --ui +codebase-memory-mcp --ui=true --port=9749 +``` + +Paper: [arXiv:2603.27277](https://arxiv.org/abs/2603.27277) + +--- + ## engram + gentle-engram engram v1.16.1 runs on nixos-desktop (.13) at `~/.local/bin/engram`. Systemd user service auto-starts. Binds `127.0.0.1:7437`, accessed via SSH tunnel: `ssh -fNL 7437:127.0.0.1:7437 192.168.20.13`. @@ -250,8 +396,21 @@ engram v1.16.1 runs on nixos-desktop (.13) at `~/.local/bin/engram`. Systemd use pi-mcp-adapter connects Pi to external services via the Model Context Protocol. -**Config file:** `~/.config/mcp/mcp.json` +**Config files:** `~/.pi/agent/mcp.json` (pi global), `~/.config/mcp/mcp.json` (shared), `.mcp.json` (project) +```json +// ~/.pi/agent/mcp.json — pi MCP servers +{ + "mcpServers": { + "codebase-memory": { + "command": "/home/sam/.local/bin/codebase-memory-mcp", + "lifecycle": "lazy" + } + } +} +``` + +Shared config at `~/.config/mcp/mcp.json`: ```json { "mcpServers": {