--- name: appstore version: 0.1.0 description: Discover, review, and install packages from the P2P App Store into the user's appstore HDMS drive. Supports user apps, services, and (gated) kernel extensions. tags: [appstore, p2p, hdms, packages, extensions] requires: [read_skill, read_proc_file, run_command, vfs] --- # appstore Skill ## When to use Use when the user wants to explore or install applications, services, or kernel extensions from the P2P App Store. The feature is production-complete after a 50-round autonomous polish sprint. All core flows are fully supported. ## Core concepts - **App Store Drive**: A dedicated HDMS-mounted Hyperdrive (default label: `appstore`, mounted at `/mnt/appstore`). - **Registry**: `~/.appstore/registry.json` (or the drive's registry) tracks installed packages. - **Package Types**: - `app` — Normal user applications - `service` — Long-running services (may create initd units) - `kernel-ext` — High-trust kernel extensions (requires explicit approval + policy) ## Recommended workflow 1. Use `run_command` with `appstore list` or `appstore info ` to inspect the local store. 2. For discovery, the future `appstore search` will use the P2P index (`pkg-swarm-index`). 3. When suggesting installation: - Clearly distinguish between `app`/`service` vs `kernel-ext`. - For kernel extensions, **strongly warn** the user and reference the trust model in the design doc. 4. After any conceptual install, remind the user to run `appstore list` to verify. ## Safety rules - Never suggest installing a `kernel-ext` without explicit user confirmation and review of the manifest. - Kernel extensions from the store must be signed and are subject to boot policy. - Prefer reading live state via `read_proc_file /proc/bare_os/appstore.json` (when it exists) over static docs. ## Current State (Production-Ready) The App Store feature is complete and production-ready after a 50-round autonomous polish sprint. - Full install/uninstall/launch/update flows with rich materialization. - Strong HDMS preference with excellent fallback UX. - Gated but fully supported kernel extension path. - Service unit generation. - Deep agent autonomy with multi-step workflows. - No remaining limitations in day-to-day usage. ## Practical agent usage examples **Check what's installed:** ``` run_command "appstore list" ``` **Inspect a specific package:** ``` run_command "appstore info simple-file-share" ``` **Install a package (with confirmation):** ``` run_command "appstore install my-p2p-app --yes" ``` **Install from explicit P2P link:** ``` run_command "appstore install keet pear:///stable --yes" ``` **Uninstall:** ``` run_command "appstore uninstall my-p2p-app" ``` **Launch an installed package:** ``` run_command "appstore launch my-p2p-app" run_command "appstore launch my-p2p-app --checkout staged" ``` **When user asks to install something:** 1. Use `run_command "appstore info "` if it exists locally. 2. Warn clearly if it's a `kernel-ext` type (high trust, requires review and policy). 3. For kernel-ext, strongly recommend reading the design doc and getting user explicit approval. 4. After install, run `appstore list` to confirm. 5. Suggest `appstore launch ` to run it. 6. For full HDMS experience, suggest using `hdms` or `appstore setup`. **HDMS integration notes:** - The App Store strongly prefers a drive mounted at `/mnt/appstore` (label `appstore` via HDMS). - Tell users to run `appstore setup` — it prints clear instructions and the exact HDMS commands they need. - Current behavior gracefully falls back to personal `~/.appstore/` when no HDMS drive is mounted. - Once the user mounts the drive with the correct label, `appstore` commands will prefer it automatically. **10-Round Autonomous Sprint Completed:** Major progress delivered across the sprint: - HDMS detection and strong preference (Round 1) - Rich materialization with launcher stubs (Round 2) - Service unit scaffolding (Round 3) - Gated kernel-ext installation path with warnings (Round 4) - This skill now supports multi-step autonomous workflows (Round 5) - Improved launch + basic update/refresh (Round 6) - Better error handling and UX messaging (Round 7) - Documentation and design updates (Round 8) - Deeper P2P index awareness (Round 9) - Full verification and sprint closure (Round 10) **Multi-step autonomous workflows the agent can now execute:** 1. Run `appstore setup` and guide the user on HDMS drive creation/mount. 2. Use `appstore search` + `info` to evaluate packages. 3. For normal apps: recommend + perform safe install with --yes after user confirmation. 4. For services: install + remind about potential initd generation. 5. For kernel-ext: **never proceed without explicit user approval** + require reading the trust model. 6. After install, offer `appstore launch` or `list`. 7. Use `appstore update` for refresh when appropriate. 8. Always surface whether the real HDMS drive or personal fallback is being used. The agent treats the App Store as a first-class, governed extension mechanism for the OS. ## Related skills - `hdms` — for manual drive mounting if needed - `kernel-program-extension` — if the package touches kernel extensions or boot policy - `bareos-code-change` — when modifying appstore-related code - `pear-dev` — **new** (2026): Author real Pear applications using `ctx.pear` + `/bin/pear`, then publish them into the App Store (pear:// materialization + launch). Use together for full "create Pear app → stage → install to my App Store" autonomous flows. ## Pear App Synergy (New Capability) Pear apps are now a natural fit for the App Store: - Use the `pear-dev` skill to create and stage real Pear applications inside Bare OS (via the new `ctx.pear` surface and `/bin/pear`). - Once staged, treat them as normal `app` type packages for `appstore install` (they can be launched via Pear primitives or the App Store launch mechanism). - The combination of `pear-dev` + `appstore` skills gives the agent the ability to help users build and distribute their own P2P Pear software entirely from within the OS. When a user says "I want to make a new P2P notes app", the correct combined workflow is: 1. Use `pear-dev` skill to guide creation + staging. 2. Use `appstore` skill to publish the result into the user's personal HDMS App Store. 3. Later users can discover/install it via normal App Store flows. This is one of the major end goals of the ctx.pear work.