ln-011-agent-installer
Installs or updates Codex CLI, Gemini CLI, and Claude Code. Use when CLI agents need installation or update.
Best use case
ln-011-agent-installer is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Installs or updates Codex CLI, Gemini CLI, and Claude Code. Use when CLI agents need installation or update.
Teams using ln-011-agent-installer should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/ln-011-agent-installer/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How ln-011-agent-installer Compares
| Feature / Agent | ln-011-agent-installer | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Installs or updates Codex CLI, Gemini CLI, and Claude Code. Use when CLI agents need installation or update.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
SKILL.md Source
> **Paths:** File paths (`shared/`, `references/`) are relative to skills repo root. Locate this SKILL.md directory and go up one level for repo root.
# Agent Installer
**Type:** L3 Worker
**Category:** 0XX Shared
Installs or updates CLI agents via npm and Claude CLI. Single pass per agent: install then immediately verify.
---
## Input / Output
| Direction | Content |
|-----------|----------|
| **Input** | OS info, `disabled` flags per agent, `dry_run` flag, optional `runId`, optional `summaryArtifactPath` |
| **Output** | Structured summary envelope with `payload.status` = `completed` / `skipped` / `error`, plus per-agent install outcomes in `changes` / `detail` |
If `summaryArtifactPath` is provided, write the same summary JSON there. If not provided, return the summary inline and remain fully standalone. If `runId` is not provided, generate a standalone `run_id` before emitting the summary envelope.
---
## Agent Registry
| Agent | Install Command | Health Check |
|-------|----------------|---------------|
| Codex | `npm i -g @openai/codex` | `codex --version` |
| Gemini | `npm i -g @google/gemini-cli` | `gemini --version` |
| Claude | `claude update` | `claude --version` |
---
## Workflow
```
For each agent: Install → Verify → Record
```
### Phase 1: Install & Verify
For each agent in registry, apply first matching rule:
| Condition | Action | Report |
|-----------|--------|--------|
| `disabled: true` | SKIP | "disabled by user" |
| `dry_run: true` | Show planned command | "dry run" |
| npm agent | `npm install -g {pkg}` then `{cmd} --version` | version or error |
| Claude | `claude update` then `claude --version` | version or error |
**Single pass:** install and verify happen atomically per agent. No separate scan phase — the install result IS the state.
**Error handling:**
| Error | Detection | Response |
|-------|-----------|----------|
| npm not in PATH | `npm --version` fails | FAIL gracefully, report "npm not found in PATH" |
| Permission denied | stderr contains "EACCES" | FAIL, suggest `npm install -g --prefix ~/.local {pkg}` |
| Network error | stderr contains "ETIMEDOUT" or "ENETUNREACH" | FAIL, report "network error" |
| Unknown error | Any other non-zero exit | FAIL, include stderr |
**Output table:**
```
Agent Installation:
| Agent | Action | Version | Status |
|--------|-----------|----------|--------|
| Codex | installed | 0.1.2503 | ok |
| Gemini | skipped | - | disabled by user |
| Claude | updated | 1.0.30 | ok |
```
### Phase 2: Post-Install Gemini Configuration
After successful Gemini install/update, set in `~/.gemini/settings.json`:
1. **Disable Conseca** — set `security.enableConseca` to `false`. Safety checker doubles API calls and exhausts quota.
2. **Model** — do NOT pass `-m` flag when invoking Gemini CLI. Auto mode routes to best available model (gemini-3.1-pro / gemini-3-flash).
---
## Critical Rules
1. **Never modify `disabled` flags.** Respect them, never change them
2. **Fail gracefully.** One agent failure does not block others
3. **Global install only.** Always `npm install -g` (CLI tools must be in PATH)
4. **Report all changes.** Include config modifications in the final summary table
5. **Idempotent.** Safe to run multiple times
## Anti-Patterns
| DON'T | DO |
|-------|-----|
| Separate check/install/verify phases | Single pass: install then verify |
| Retry failed installs automatically | One attempt, report failure |
| Use `sudo npm install` | Suggest `--prefix` for permission issues |
| Install agents marked `disabled` | Skip with clear report |
---
## Definition of Done
- [ ] All agents processed in single pass (install + verify)
- [ ] Disabled agents skipped with report
- [ ] Version verified immediately after each install
- [ ] Status table displayed
---
**Version:** 1.1.0
**Last Updated:** 2026-03-23Related Skills
ln-015-hex-line-uninstaller
Removes hex-line hooks, output style, and cached files from the system. Use when hex-line MCP needs to be fully uninstalled.
ln-914-community-responder
Responds to unanswered GitHub discussions and issues with codebase-informed replies. Use when clearing community question backlog.
ln-913-community-debater
Launches RFC and debate discussions on GitHub. Use when proposing changes that need community input or voting.
ln-912-community-announcer
Composes and publishes announcements to GitHub Discussions. Use when sharing releases, updates, or news with the community.
ln-911-github-triager
Produces prioritized triage report from open GitHub issues, PRs, and discussions. Use when reviewing community backlog.
ln-910-community-engagement
Analyzes community health and delegates engagement tasks. Use when managing GitHub issues, discussions, and announcements.
ln-840-benchmark-compare
Runs built-in vs hex-line benchmark with scenario manifests, activation checks, and diff-based correctness. Use when measuring hex-line MCP performance against built-in tools.
ln-832-bundle-optimizer
Reduces JS/TS bundle size via tree-shaking, code splitting, and unused dependency removal. Use when optimizing frontend bundle size.
ln-831-oss-replacer
Replaces custom modules with OSS packages using atomic keep/discard testing. Use when migrating custom code to established libraries.
ln-830-code-modernization-coordinator
Modernizes codebase via OSS replacement and bundle optimization. Use when acting on audit findings to reduce custom code.
ln-823-pip-upgrader
Upgrades Python pip/poetry/pipenv dependencies with breaking change handling. Use when updating Python dependencies.
ln-822-nuget-upgrader
Upgrades .NET NuGet packages with breaking change handling. Use when updating .NET dependencies.