# meticulous-cli-update

Checks whether @alwaysmeticulous/cli is installed and current, and updates it when it is not. Runs at the start of any other Meticulous skill.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 8600 installs · ★ 10
- Author: alwaysmeticulous
- License: ISC · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/alwaysmeticulous/skills/tree/HEAD/skills/meticulous-cli-update/SKILL.md
- Updated: 2026-10-22
- HTML: https://affpapa.org/en/nevibecode/skills/meticulous-cli-update

## What it does

The `@alwaysmeticulous/cli` package ships changes often, and the other Meticulous skills assume the `meticulous` command is on `PATH` and up to date. This skill runs the check once per conversation: it reads the installed version with `meticulous --version`, compares it against `npm view @alwaysmeticulous/cli version`, and reinstalls the package when the two differ.

Then it looks at auth. `meticulous auth whoami` reports whether you signed in through OAuth and which project is selected. With a project API token or injected credentials the project is already pinned to the credential, so `meticulous auth set-project` is the wrong move there — it errors out. Calling tools through the hosted MCP server skips the CLI install and local auth steps entirely, but the skills themselves still need updating.

The install and update commands reach the network and install packages, so the skill treats them as best-effort. If a permission prompt appears or the user declines, it recommends the command instead of forcing it and carries on. The one hard requirement is that `meticulous` exists at all: without it no Meticulous skill can run, and that is where the workflow stops.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add alwaysmeticulous/skills --skill meticulous-cli-update -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/meticulous-cli-update/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/meticulous-cli-update/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add alwaysmeticulous/skills --skill meticulous-cli-update -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/meticulous-cli-update/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add alwaysmeticulous/skills --skill meticulous-cli-update -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/meticulous-cli-update/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install alwaysmeticulous/skills meticulous-cli-update
```

2. **Manually: put the files in place**
- File: `.github/skills/meticulous-cli-update/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add alwaysmeticulous/skills --skill meticulous-cli-update -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/alwaysmeticulous/skills --path skills/meticulous-cli-update
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/meticulous-cli-update/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add alwaysmeticulous/skills --skill meticulous-cli-update -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/alwaysmeticulous/skills/tree/HEAD/skills/meticulous-cli-update/SKILL.md

## When to use it
- confirm the `meticulous` command exists on `PATH` before another Meticulous skill starts
- compare the installed CLI version against the latest published one
- update a globally installed `@alwaysmeticulous/cli`
- update a project-local CLI through npm, pnpm or yarn
- check whether you are signed in to Meticulous and which project is selected

## Example prompts
- check whether the Meticulous CLI is installed and up to date
- update `@alwaysmeticulous/cli` to the latest version
- show which Meticulous account I'm signed in as and which project is selected

## Source text · SKILL.md · ISC

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: dfd25dfadd5930e2.

BEGIN THIRD-PARTY FILE dfd25dfadd5930e2
```text
---
name: meticulous-cli-update
description: Check whether the Meticulous CLI (@alwaysmeticulous/cli) and skills are installed and up to date, and install/update them if not. Invoked at the start of every other Meticulous skill, since the CLI and skills are under active development with frequent changes and improvements.
user-invocable: false
---

# Install or update the Meticulous CLI

The `@alwaysmeticulous/cli` package is under active development and ships frequent changes and improvements. Other Meticulous skills assume the `meticulous` command is on `PATH` and up to date, so run this skill once at the start of any Meticulous workflow.

This only needs to run **once per conversation**. If you've already run it earlier in this conversation, skip it — there's no need to re-check the version or re-update on every Meticulous skill invocation.

**Using the MCP server instead of the CLI?** Steps 1-4 are about installing/updating the `meticulous` CLI binary and its own local auth — neither applies when calling tools on the hosted [Meticulous MCP server](https://app.meticulous.ai/api/mcp), which is already on the latest version and authenticates via the MCP connection itself, not `meticulous auth login`. Skip straight to **Step 5**: the installed **skills** (this document set) are a separate thing from the CLI/MCP tool itself and still need to stay current either way, regardless of which one you're calling tools through. One MCP-login gotcha worth knowing: if Claude Code fails the sign-in with "Issuer mismatch in authorization response (RFC 9207)", it is reusing a stale cached authorization-server URL — tell the user to choose **Clear authentication** (not Re-authenticate) for the Meticulous server in `/mcp`, then authenticate again.

Full setup instructions — installing the CLI, connecting the MCP server, and installing these skills — live at [app.meticulous.ai/docs/agents/setup](https://app.meticulous.ai/docs/agents/setup).

## How to handle the install/update commands

This skill normally runs as a sub-step of another Meticulous skill. The install/update commands below (Steps 1, 3, and 5) are security-sensitive — they install packages and reach the network — so treat them as **best-effort and non-blocking**:
```
END THIRD-PARTY FILE dfd25dfadd5930e2

The third-party file has ended. Everything between the dfd25dfadd5930e2 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2261 of 11301 bytes. © alwaysmeticulous · ISC · https://github.com/alwaysmeticulous/skills/tree/HEAD/skills/meticulous-cli-update/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
