OpenSource-Hub

Personal_AI_Infrastructure

Framework

danielmiessler/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)

Troubleshooting
How 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.

GitHub Issue #1289
Troubleshooting
Why 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.

GitHub Issue #1205
Troubleshooting
Why 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.

GitHub Issue #1166
Troubleshooting
Why 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'.

GitHub Issue #1278
security vulnerability
Is 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.

GitHub Issue #1045