ln-011-agent-installer

Installs or updates Codex CLI, Gemini CLI, and Claude Code. Use when CLI agents need installation or update.

310 stars

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

$curl -o ~/.claude/skills/ln-011-agent-installer/SKILL.md --create-dirs "https://raw.githubusercontent.com/levnikolaevich/claude-code-skills/main/skills-catalog/ln-011-agent-installer/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/ln-011-agent-installer/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How ln-011-agent-installer Compares

Feature / Agentln-011-agent-installerStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/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-23

Related Skills

ln-015-hex-line-uninstaller

310
from levnikolaevich/claude-code-skills

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

310
from levnikolaevich/claude-code-skills

Responds to unanswered GitHub discussions and issues with codebase-informed replies. Use when clearing community question backlog.

ln-913-community-debater

310
from levnikolaevich/claude-code-skills

Launches RFC and debate discussions on GitHub. Use when proposing changes that need community input or voting.

ln-912-community-announcer

310
from levnikolaevich/claude-code-skills

Composes and publishes announcements to GitHub Discussions. Use when sharing releases, updates, or news with the community.

ln-911-github-triager

310
from levnikolaevich/claude-code-skills

Produces prioritized triage report from open GitHub issues, PRs, and discussions. Use when reviewing community backlog.

ln-910-community-engagement

310
from levnikolaevich/claude-code-skills

Analyzes community health and delegates engagement tasks. Use when managing GitHub issues, discussions, and announcements.

ln-840-benchmark-compare

310
from levnikolaevich/claude-code-skills

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

310
from levnikolaevich/claude-code-skills

Reduces JS/TS bundle size via tree-shaking, code splitting, and unused dependency removal. Use when optimizing frontend bundle size.

ln-831-oss-replacer

310
from levnikolaevich/claude-code-skills

Replaces custom modules with OSS packages using atomic keep/discard testing. Use when migrating custom code to established libraries.

ln-830-code-modernization-coordinator

310
from levnikolaevich/claude-code-skills

Modernizes codebase via OSS replacement and bundle optimization. Use when acting on audit findings to reduce custom code.

ln-823-pip-upgrader

310
from levnikolaevich/claude-code-skills

Upgrades Python pip/poetry/pipenv dependencies with breaking change handling. Use when updating Python dependencies.

ln-822-nuget-upgrader

310
from levnikolaevich/claude-code-skills

Upgrades .NET NuGet packages with breaking change handling. Use when updating .NET dependencies.