[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-96091":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":35,"readmeContent":36,"aiSummary":37,"trendingCount":15,"starSnapshotCount":15,"syncStatus":38,"lastSyncTime":39,"discoverSource":40},96091,"Penelopa.ai","chigwell\u002FPenelopa.ai","chigwell","Continuous improvement for AI coding agents: Penelopa analyzes real Codex and Claude Code sessions, finds repeated workflow patterns, and turns them into reusable skills, checks, prompts, and recommendations.","penelopa.ai",null,"JavaScript",108,1,102,0,6,41.5,"GNU Affero General Public License v3.0",false,"main",true,[23,24,25,26,27,28,29,30,31,32,33,34],"agent-improvement","agent-observability","ai-agents","ai-recommendations","claude-code","codex","coding-agents","continuous-improvement","developer-productivity","prompt-engineering","reusable-skills","workflow-automation","2026-09-20 04:01:32","\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fcapsule-render.vercel.app\u002Fapi?type=waving&color=gradient&height=200&section=header&text=Penelopa.ai&fontSize=50&fontAlignY=35&animation=fadeIn&fontColor=FFFFFF&descAlignY=55&descAlign=62\" alt=\"Penelopa.ai\" width=\"100%\" \u002F>\n\u003C\u002Fdiv>\n\nContinuous improvement for AI coding agents. Connect Codex and Claude Code once, keep working, and review practical recommendations in your personal dashboard or desktop companion.\n\n## Install\n\n### macOS and Linux\n\n```sh\ncurl -fsSL https:\u002F\u002Fpenelopa.ai\u002Fscript | sh\n```\n\nIf your Linux installation has wget instead of curl:\n\n```sh\nwget -qO- https:\u002F\u002Fpenelopa.ai\u002Fscript | sh\n```\n\n### Windows PowerShell\n\n```powershell\n$installer = Join-Path $env:TEMP \"penelopa-install.ps1\"\nInvoke-WebRequest -UseBasicParsing -Uri \"https:\u002F\u002Fpenelopa.ai\u002Fscript.ps1\" -OutFile $installer\npowershell.exe -NoProfile -ExecutionPolicy Bypass -File $installer\n```\n\nThe command downloads a verified private Node\u002Fnpm runtime, connects your account, configures the hooks, and builds **Penelopa.ai** on your computer. Git, Python, system npm, Homebrew, Xcode and Visual Studio are not prerequisites. No system package manager or global PATH is changed.\n\nDesktop targets: **macOS 13.5+ on Apple Silicon or Intel**, and **Windows 10 22H2+ \u002F Windows 11 x64**. Linux x64\u002Farm64 with kernel 4.18+ and glibc 2.28+ supports hooks only. Windows ARM and Linux Desktop are not included in this release. Allow **3 GB of free space** for desktop builds, staging and rollback, plus internet access to Penelopa, nodejs.org, the npm registry, and official Electron release downloads.\n\n## Finish connecting\n\n1. In Codex, open **Settings → Hooks**, review **Stop** and **SessionEnd**, and trust them. In the CLI, use `\u002Fhooks`. Installing the files does not automatically approve them.\n2. The desktop app opens with your installed account. No token needs to be copied into the client.\n3. Open **Connection** to see configured agents, the first real hook event, queued data and the last server-confirmed upload. The installation self-test uses synthetic data locally; it does not prove that an agent has approved its hooks.\n4. Continue a coding session. The status changes to **Connected** after a real event is observed.\n5. Fresh desktop installs open at login by default so background delivery resumes after you sign in. Disable launch at login or enable system notifications in **App settings** if wanted. Telegram preferences remain separate and are not changed by installation.\n\nClosing the window keeps Penelopa in the tray\u002Fmenu bar. **Quit** closes the desktop client; hooks still capture events and launch their own delivery worker. Failed uploads remain queued, and are retried by the running client or subsequent hook events. No additional always-running system service is installed.\n\nThe app displays the current web dashboard, including activity, recommendations, individual reports, Telegram settings and the Sessions explorer. Sessions lets you browse captured conversations, inspect each message and tool input\u002Foutput, follow newly delivered events, and trace process steps back to their evidence. Large content is read in bounded fragments; availability follows server retention. Older clients show an update prompt for Sessions until the desktop is updated. An internet connection is needed for these pages. Connection diagnostics and app settings remain available offline.\n\n## Local signing\n\nMac builds receive an **ad-hoc signature**, without a Developer ID or notarization. Windows builds do not claim a trusted publisher signature. These are local builds; Gatekeeper, SmartScreen, enterprise policies and notification permissions can still require user action or prevent launch. The installer reports a desktop failure separately and preserves successfully installed hooks. It does not disable OS protections, strip quarantine attributes or add trusted root certificates.\n\n## Recovery and maintenance\n\nAfter installation, commands can run offline from the private runtime. On macOS\u002FLinux:\n\n```sh\n\"$(cat \"$HOME\u002F.auto-improve\u002Fnode-path\")\" \"$HOME\u002F.auto-improve\u002Fbin\u002Fpenelopa.cjs\" --diagnose\n\"$(cat \"$HOME\u002F.auto-improve\u002Fnode-path\")\" \"$HOME\u002F.auto-improve\u002Fbin\u002Fpenelopa.cjs\" --repair\n```\n\nTo refresh an existing Claude Code hook with a supplied account token in one command:\n\n```sh\ncurl -fsSL https:\u002F\u002Fpenelopa.ai\u002Fscript | AUTO_IMPROVE_TOKEN='YOUR_TOKEN' sh -s -- --repair --agent claude --no-desktop\n```\n\nAlternatively, download\u002Frerun the original installer with these options. PowerShell uses the corresponding names, for example `-Diagnose`, `-Repair`, `-Token`, `-NoDesktop`.\n\n| Option | Purpose |\n| --- | --- |\n| `--agent codex\\|claude\\|both` | Choose agents; default is both |\n| `--no-desktop` | Install hooks without building a client |\n| `--desktop required` | Require a supported production desktop target |\n| `--diagnose` | Print diagnostics without credentials or transcripts |\n| `--repair` | Repair or update Penelopa hooks, repeat the local self-test, and keep the account token unless a new token is supplied |\n| `--no-launch` | Build without opening the app |\n| `--force-new-token` | Explicitly create a new account token |\n| `--no-access-link` | Suppress the private browser sign-in link |\n| `--uninstall` | Remove Penelopa hooks\u002Fapp\u002Fstartup registration, retaining account and queued data |\n| `--uninstall --purge-data` | Also remove Penelopa credentials and local queued data |\n\nNormal installation logs do not print tokens or private sign-in URLs. A repeated installation reuses the account. **Sign out of client** does not pause collection; **Pause collection** stops new capture and delivery while preserving the queue. Authentication errors do not automatically create a new account.\n\nExisting endpoint, token, environment-file, source-schema and upload-limit options remain available; use `--help`. The old `--install-deps` switch is retained for compatibility; private runtime installation is automatic. Explicit custom uploader URLs must implement the current snapshot\u002Freceipt contract. Custom API endpoints are supported for hooks only and disable desktop account import.\n\n## Local data\n\n- Runtime, versioned source, worker, pending events and app settings: `~\u002F.auto-improve` (override with `AUTO_IMPROVE_HOME`).\n- Existing credential formats are retained: `~\u002F.auto-improve-hook.env` or `~\u002F.auto-improve-hook.json`, protected for the current user. Independent hooks need this credential file; it is not encrypted by the desktop app.\n- The desktop's credential copy uses Electron safeStorage\u002FKeychain\u002FDPAPI. Tokens are not exposed to the web renderer. A local Mac signature change may cause Keychain to request access again after an update.\n- Mac application: `~\u002FApplications\u002FPenelopa.ai.app`; Windows: `%LOCALAPPDATA%\u002FPrograms\u002FPenelopa.ai` with a Start Menu shortcut.\n- `AUTO_IMPROVE_DATA_DIR`, `AUTO_IMPROVE_HOOK_CONFIG`, `CODEX_HOME` and `CLAUDE_CONFIG_DIR` remain supported. App settings and credentials are stored outside the replaceable app bundle.\n\n## Development and release\n\nUse the Node version pinned in `desktop\u002Frelease-config.json` and CI (currently 24.20.0):\n\n```sh\nnpm ci\nnpm run typecheck\nnpm run test:web:unit\nnpx playwright install chromium\nnpm run test:web\nnpm run verify:desktop-assets\nnpm run test:desktop\nnpm run build\n```\n\n`build` builds the website. `test:desktop` generates temporary bundles from current source, while `verify:desktop-assets` checks the published asset hashes without rewriting them. On macOS or Windows, `npm run verify:desktop-build` packages and launches current source in a temporary directory.\n\nRun `npm run release:desktop` explicitly to prepare deterministic source ZIPs, checksummed manifests and public shell\u002FPowerShell bootstraps. It refuses different content at an existing versioned release path. Before preparing a changed release, bump the versions together in `desktop\u002Fpackage.json`, `desktop\u002Fpackage-lock.json` and `desktop\u002Frelease-config.json`, and retain previous releases.\n\nSource bundles contain an isolated desktop lockfile and the durable uploaders. Installation uses `npm ci --ignore-scripts` and an explicitly verified Electron archive; it does not run arbitrary npm lifecycle scripts or compile Chromium. See [desktop delivery notes](docs\u002Fdesktop-delivery.md) for the architecture, CI matrix, launch verification and release sequence.\n\n`npm run test:web:visual` compares the reviewed macOS Chromium screenshots. Browser tests mock API responses and control time; they do not need an account. The [Session Explorer notes](docs\u002Fsession-explorer.md), [behavior contracts](docs\u002Fbehavior-contracts.md) and [refactor ledger](docs\u002Frefactor-ledger.md) describe preserved differences, validation evidence and separate migration work. The standalone `penelopa-how-it-works-demo.html` is an archived reference; maintain the React demo in `app\u002Fcomponents\u002F`.\n\nThe desktop checks for updates at startup and daily. **Update & restart** prepares the next version outside the running app, checks its signature\u002Flaunch, and then replaces it. Failure keeps the previous working bundle and the existing account, settings and queue.\n\nFor data processing details, see [Privacy](PRIVACY.md) and [Terms](TERMS.md).\n","Penelopa.ai 是一个面向 AI 编程代理的持续优化工具，通过分析真实 Codex 和 Claude Code 的编码会话日志，自动识别高频工作流模式，并将其提炼为可复用的技能、校验规则、提示模板与个性化建议。项目采用轻量级本地运行架构，内置私有 Node.js 运行时，无需修改系统环境或全局依赖；支持 macOS\u002FWindows 桌面端与钩子集成，提供可视化仪表盘和 Telegram 通知能力。适用于希望提升 AI 编程代理稳定性、可复现性与团队知识沉淀效率的开发者与工程团队。",2,"2026-09-09 02:30:12","CREATED_QUERY"]