Personal_AI_Infrastructure
Frameworkdanielmiessler/Personal_AI_Infrastructure
AI infrastructure for magnifying human capabilities with a personal life operating system.
Overview
PAI is a Life Operating System that captures who you are and helps you achieve your ideal state via AI. It includes a unified Pulse daemon, a Digital Assistant identity layer, and structured skills and workflows.
README Preview
\n\n\n \n \n \n\n\n\n\n\n# Personal AI Infrastructure\n\n[](https://github.com/danielmiessler/Personal_AI_Infrastructure)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n[](#-installation)\n[](Releases/v5.0.0/)\n[](Releases/v5.0.0/.claude/PAI/ALGORITHM/v6.3.0.md)\n[](Releases/v5.0.0/.claude/PAI/PULSE/)\n[](https://github.com/danielmiessler/Personal_AI_Infrastructure/graphs/contributors)\n\n\n[](https://claude.ai)\n[](https://www.typescriptlang.org/)\n[](https://bun.sh)\n[](https://danielmiessler.com/upgrade)\n\n\n\n**Overview:** [What PAI Is](#what-pai-is) · [Principles](#principles) · [Features](#features)\n\n**Get Started:** [Installation](#-installation) · [Releases](Releases/) · [Packs](Packs/)\n\n**Resources:** [FAQ](#-faq) · [Roadmap](#-roadmap) · [Community](#-community) · [Contributing](#-contributing)\n\n\n\n[](https://youtu.be/Le0DLrn7ta0)\n\n**[Watch the full PAI walkthrough](https://youtu.be/Le0DLrn7ta0)** | **[Read: The Real Internet of Things](https://danielmiessler.com/blog/the-real-internet-of-things)**\n\n---\n\n\n\n> [!IMPORTANT]\n> **PAI v5.0.0 — Life Operating System** — the biggest release in PAI history. PAI is no longer "AI scaffolding" — it's a **Life Operating System** with the unified **Pulse** daemon (Life Dashboard at `localhost:31337`), a **DA** (Digital Assistant) identity layer, **Algorithm v6.3.0** (Current State → Ideal State, seven phases, classifier-driven mode + tier), the **ISA** primitive (universal "ideal state" articulation), 45 skills, 171 workflows, 37 hooks, and structural privacy via containment zones.\n>\n> **[v5.0.0 release notes →](Releases/v5.0.0/README.md)** | **[All releases →](Releases/)**\n>\n> **One-line install:** `curl -sSL https://ourpai.ai/install.sh | bash`\n>\n> Upgrading from v4.x? This is a different system, not a patch. Read the [migration guide](Releases/v5.0.0/README.md#migration-guide-from-v4x) first.\n\n\n\n# AI should magnify everyone—not just the top 1%.\n\n\n\n## What PAI Is\n\nPAI is a Life Operatin
FAQ (5)
TroubleshootingHow to run Evals when the EvalServer/cli.ts file is missing?
The EvalServer folder was an intended architecture that never got built. The actual entry point is skills/Evals/Tools/AlgorithmBridge.ts. Run: npx ts-node skills/Evals/Tools/AlgorithmBridge.ts -s <suite>. All workflows (RunEval, ViewResults, etc.) now reference the real tools under Tools/. Check the cleaned up skill in version 5.1.0.
TroubleshootingWhy are skills not showing up in Claude Code after installing v5.0.0?
In v5.0.0, many skill descriptions exceed the 650-character soft limit, causing them to be silently dropped due to the skill listing token budget. To fix, open your Claude Code settings.json and increase skillListingBudgetFraction (e.g., to 0.02) and skillListingMaxDescChars (e.g., to 2000). Restart Claude Code. /doctor will confirm the fix.
TroubleshootingWhy do algorithm phase announcements still use default voice after configuring custom voice in PAI v5.0.0?
This is a regression in v5.0.0 where a hardcoded voice_id 'fTtv3eikoepIosk8dTZ5' was reintroduced into the algorithm template's curl commands. To fix, remove 'voice_id' from the payload in the phase announcement curls, leaving only 'voice_enabled': true. Pulse will then fall back to the custom voice configured in settings.json. The regression is tracked in issue #1166; a fix is pending.
TroubleshootingWhy does PAI dashboard show 404 or modules fail to load on Linux/case-sensitive filesystem?
This happens because PAI path strings like 'PAI/Pulse' are hardcoded with mixed case, but the actual directories are uppercase (PAI/PULSE). On case-insensitive macOS it works, but on Linux it breaks. Fix: Upgrade to version where this is resolved (after PR merges #1175, #1259, #1273, #1267). For immediate workaround, set absolute 'dashboard_dir' in PULSE.toml: [observability] dashboard_dir = '/home/<user>/.claude/PAI/PULSE/Observability/out'.
security vulnerabilityIs there a command injection vulnerability in the Kitten tab-setter hook and how to fix it?
Yes, versions before v4.0.3 had a shell injection risk via execSync in hooks/lib/tab-setter.ts. Upgrade to v4.0.3 or later (for the stable release) or wait for v5.1.0 (which also fixes the issue in the upcoming branch). The fix replaces execSync(string) with execFileSync(array) to avoid shell interpretation. Additionally, socket path validation and native JSON parsing replace jq pipelines. Example: execFileSync('kitten', ['@', --to=${socketPath}, 'set-tab-title', title]). No manual workaround is needed if you update.