# Install Cool Kid Tabs for your agent

Cool Kid Tabs provides a small CLI and an agent skill for organizing synced folders and saved tabs. No private repository access, CTX9 fleet installation, or separate AI provider key is required. Installation supports macOS and Linux with Node.js 22 or newer.

## Copy this prompt

```text
Set up Cool Kid Tabs for this agent. Read https://coolkidtabs.ctx9.com/agents/install.md and follow its public installation instructions. Install the ckt CLI and coolkidtabs-organize skill in this agent's supported user skill directory, verify the CLI, and help me sign in through browser approval. Never read or print credentials. Finish by checking my account and listing my folders without changing them.
```

The public product guide is https://ctx9.com/coolkidtabs/docs/agent-setup. This plain Markdown document is the canonical machine-readable installation guide.

## Agent installation

Check `node --version`. If Node.js 22 or newer is missing, use the user's established package manager to install a supported Node.js release. Select this agent's supported user skill directory. Codex uses `~/.agents/skills`; Claude Code uses `~/.claude/skills`. Other agents should use their documented skill directory.

Download and inspect the installer before executing it:

```sh
curl --fail --silent --show-error https://coolkidtabs.ctx9.com/agents/install.mjs -o /tmp/coolkidtabs-install.mjs
node /tmp/coolkidtabs-install.mjs --skill-dir "$HOME/.agents/skills"
"$HOME/.local/bin/ckt" --version
"$HOME/.local/bin/ckt" --help
```

Use `--skill-dir "$HOME/.claude/skills"` for Claude Code. Use an existing user-owned temporary directory instead of `/tmp` when appropriate. The installer downloads the CLI and skill from the same HTTPS service, verifies their SHA-256 checksums against `/agents/manifest.json`, and installs only `ckt` and `coolkidtabs-organize/SKILL.md`. Re-running it updates those two files. It does not run login, change shell startup files, modify browser profiles, or edit folders and tabs. An interrupted release or checksum mismatch fails before installation.

Ensure `~/.local/bin` is in PATH. If it is absent, use the absolute CLI path for this session and add that directory using the user's normal shell configuration. Start a new agent chat when the host discovers skills only at startup. Read the installed skill for the current organization contract.

## Sign in

```sh
ckt login
ckt status --json
ckt tree
```

Login opens a browser approval page and prints its link and code. Use `ckt login --no-browser` on a remote machine, then open the printed link on a browser you control. Compare the code before approving. Use the same verified account as the extension and allow its pending changes to sync first.

The CLI stores its session in an owner-only file under the user's configuration directory. Agents must never read, copy, or print that file. `ckt status` returns only account and expiry metadata. `ckt logout` revokes the session. Password reset revokes CLI sessions along with browser sessions.

## Organize

```sh
ckt search "database" --json
ckt export --out organization.json
ckt apply --file organization.json --dry-run
ckt apply --file organization.json
```

Edit only the exported `document`; preserve its surrounding account, revision, and request ID. Include all active folders and tabs. Missing records go to trash. Apply checks access and versions in one transaction, saves a local before-state file, and either commits the complete change or returns an error. Retrying the exact same successful request is safe. A different edit needs a new export.

Archived and trashed records stay outside this editing document. It does not contain credentials, browser bindings, or preferences. Shared roots appear as top-level folders when their parent is outside your access. The service preserves that actual parent and enforces sharing boundaries.

The current organization document limit is 1,000,000 UTF-8 bytes. Large libraries beyond that limit can still be read but need smaller dedicated operations before bulk agent editing is supported. This release handles synced saved and bookmark tabs, not unsynced local folders or live browser tabs.

## Development

Use `--server http://127.0.0.1:<port>` on the installer and each CLI command for a disposable local service. Sessions are kept separate for each server origin. Production requires HTTPS. CLI and skill assets are built and deployed with the service, so users need no package registry credentials.
