# Install DontDumb — instructions for coding agents

The user has asked you to install DontDumb. Help them complete installation in their existing desktop coding host, without requiring them to enter terminal commands.

## 1. Check availability first

Fetch `/install.json` from the same HTTPS origin as this guide. It is the authoritative installation manifest. Check `schemaVersion` and `status` before downloading or changing anything.

- If `status` is `unreleased`, explain that public installers are not available yet and stop. Do not guess an npm package, marketplace listing, release tag or download URL. Do not request access to a private source repository as the normal installation flow.
- If the manifest is unavailable or has an unsupported schema, report that installation cannot be verified. Do not substitute an arbitrary search result.
- If `status` is `available`, use the matching host entry in `artifacts`. Resolve its relative download path against this origin. Require HTTPS and the published SHA-256 checksum. This checksum checks consistency with the published release; it is not a code signature.

## 2. Detect the intended host

Use the current application's identity when available. Detect the OS, host version and Node.js version through ordinary local tools. Supported distribution: macOS desktop, Node.js22+, Codex, Claude.app local Code, and OpenCode Desktop2.2.5. ChatGPT chat, Claude regular chat/Cowork/cloud sessions, mobile and terminal-only experiences are not supported by this distribution.

If several hosts are installed and the current host is ambiguous, ask which one to configure. Install only that host unless the user requested more. If a prerequisite is missing, explain the missing prerequisite and follow the host's documented installation flow; do not silently add paid services or switch provider billing.

## 3. Download, verify, inspect, install

1. Download the matching ZIP and verify its SHA-256 against the manifest before executing any bundled file.
2. Inspect archive entries before extracting: reject absolute paths, parent-directory traversal and links that escape the extraction directory. Extract into a dedicated temporary directory.
3. Check that the expected package root and installer entry from the manifest exist inside that directory. Read `START_HERE.md` and the bundled installer before running it. Keep the entire extracted bundle together.
4. Run that package's installer entry through your normal approved local execution tools. Do not pipe a network response into a shell. Do not ask the user to type terminal commands.
5. Preserve unrelated plugins, model connections and existing learner memory. Use the supplied installer rather than replacing whole configuration files. Do not remove live writer locks or running processes as a generic recovery step.

Codex and Claude packages use `bin/install-macos`. OpenCode uses `bin/install`. Both are paths relative to the verified package root, not commands to fetch from an unrelated source. The installers keep a persistent local copy, so the temporary extraction can be removed after successful installation.

Respect macOS trust, host plugin approval and hook review. Never disable Gatekeeper, remove quarantine attributes, forge approval/trust state or click consent on the user's behalf. If a native approval or restart requires the user, explain exactly what they must do, then resume verification afterward. Do not restart an app in the middle of its active work.

## 4. Connect the host

### Codex

Confirm `dontdumb@dontdumb-beta` is installed and enabled. Ask the user to review the DontDumb readiness hook in Settings → Hooks / Review hooks if required. Enablement and hook trust are separate. Start a fresh chat after installation/update. Invoke Start DontDumb, open the built-in browser panel when available, select the intended coding chat and choose Watch this chat. An external browser is the fallback.

### Claude.app Code

Confirm `dontdumb@dontdumb-local` is installed/enabled. Start a new local Code session after normal plugin/hook/module review. Invoke `/dontdumb:dontdumb`. Select the connected Code session in Learn and choose Watch this chat. Use the existing session bridge; do not create an API key or require a separate terminal sign-in as the normal flow. The installer may need a local Claude executable for plugin registration; that is distinct from a separate model login. An external browser may be required.

### OpenCode Desktop

Confirm Desktop2.2.5 before installation. The installer preserves unrelated settings and backs up the configuration. Restart after active work finishes, open a coding chat and run `/dontdumb on`. Confirm the Learn panel opens and learning is On. Use the existing model connection. This package does not claim TUI support.

## 5. Verify the experience, not just the files

- Confirm the host recognizes the plugin and Learn opens.
- Confirm Learn is observing the intended coding chat, using the existing host model connection.
- Ask the user for their learning goals in Learn; never infer mastery from installation or reading.
- During the next substantive coding task, verify that work is observed and either a relevant opportunity or a specific model/observation error is reported. A generic On indicator or empty loading state is not proof of success.
- Verify one learning response through the host connection. Do not begin an expensive interactive or submit learner answers on the user's behalf merely to test installation.
- Report separately: installed, enabled/trusted, observing, model response verified, and user-visible nudge verified. Do not claim a nudge worked because a hook emitted output or an offer exists inside Learn.

If you cannot perform a check, say which one remains. Use the matching host guide and `/docs/troubleshooting/` for recovery; do not wipe memory as a fallback.

## Data and usage explanation

Tell the user: DontDumb is a learning subagent with its own local harness, using selected work context through the same host's existing model connection. There is no DontDumb backend or model service receiving their code. Relevant context still reaches their existing model provider and learning consumes additional allowance. Memory is local with import/export. Anonymous product metadata is enabled by default when configured and can be disabled in Learn; code, prompts and answers are excluded.

## Update and uninstall

For updates, repeat manifest/checksum verification, preserve memory, finish active work, then use the new bundled installer and fresh host sessions. Remove through the host's plugin controls or the matching host guide, preserving unrelated settings. Removing the plugin is not permission to delete learner memory. Never claim public release availability from the existence of a local trial bundle.
