# loops-cli

A skill that tells your agent how to drive the Loops CLI: install, authenticate, manage API keys, and run contact, campaign and transactional email commands.

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

## What it does

The skill maps a terminal task to the right Loops CLI command. It covers installing and updating the CLI, logging in, storing and switching API keys across teams, and validating credentials. Then the actual work: contacts and their properties, lists, events, transactional email, campaigns, email messages, themes, components and uploads.

A reference file `references/cli.md` holds the install, auth, config resolution and global flag details, plus campaigns, themes, components and uploads. The skill tells the agent to check `loops agent-context` for exact flags and current command shape, and to add `--output json` when the result feeds a script. Secrets stay out of the transcript — keyring-backed auth or environment variables instead of pasted keys.

When the job turns into application-code integration or exact HTTP payload design, the skill hands off to `loops-api`. LMX markup belongs to `loops-lmx`. Worth checking before you start: if the task is really code, the terminal route will cost you more than it saves.

## Install

### Claude Code (native platform)

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

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

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add loops-so/skills --skill loops-cli -a codex
```

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

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add loops-so/skills --skill loops-cli -a cursor
```

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

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install loops-so/skills loops-cli
```

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

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add loops-so/skills --skill loops-cli -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/loops-so/skills --path skills/loops-cli
```

### Windsurf (Devin Desktop)

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

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add loops-so/skills --skill loops-cli -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/loops-so/skills/tree/HEAD/skills/loops-cli/SKILL.md

## When to use it
- install or update the Loops CLI without guessing the command
- log in to Loops from a shell session
- keep several API keys and switch between teams
- create a contact or send an event in one command
- draft a campaign and upload an image from the terminal

## Example prompts
- install the Loops CLI and show me how to log in
- create a contact with loops contacts create
- list themes as JSON so I can pipe it into a script

## Source text · SKILL.md · MIT

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: ccd92fedd40d02df.

BEGIN THIRD-PARTY FILE ccd92fedd40d02df
```text
---
name: loops-cli
description: >
  Use this skill whenever the user wants to work with the Loops CLI from the
  terminal. This includes installing or updating the CLI, authenticating,
  storing and selecting API keys, validating credentials, and running commands
  for contacts, contact properties, lists, events, transactional email,
  campaigns, email messages, themes, components, and uploads. Trigger on phrases like
  "Loops CLI", "loops auth login", "loops campaigns create", "loops uploads create", "loops
  email-messages update", "loops themes list", "loops components get", "loops
  contacts create", "loops events send", "loops transactional send", "loops
  api-key", "loops agent-context", "brew install loops-so/tap/loops", or any
  time the user wants to use Loops from the shell instead of application code.
metadata:
  version: 1.1.1
---

# Loops CLI Skill

This skill helps with Loops terminal workflows. Use it for installation, auth and configuration, command selection, and shell-first operational tasks.

## When To Use

Use this skill when the user needs to:

- install, update, or troubleshoot the Loops CLI
- authenticate with Loops from the terminal
- manage stored team keys or switch between them
- run one-off contact, list, event, or transactional-email commands
- create draft campaigns, update email-message content, and upload images from the shell
- list/get themes and reusable components for LMX
- inspect CLI output in text or JSON locally

This skill is for command-line usage, not application integrations or email-strategy review.

## Working Style

When this skill is active:

1. Prefer `loops agent-context` for exact flags and the latest command shape.
2. Prefer the CLI for shell workflows, one-off operational tasks, credential validation, and quick troubleshooting.
3. Use `--output json` when the result needs to feed another tool or script.
4. Use named stored keys plus `--team` when the user works across multiple Loops teams.
5. Avoid printing secrets. Prefer keyring-backed auth or environment variables over hardcoded API keys.
6. If the task becomes application-code integration or exact HTTP payload design, use the separate `loops-api` skill.

Official references:

- CLI docs: `https://loops.so/docs/cli`
- CLI repo: `https://github.com/loops-so/cli`
- CLI README: `https://github.com/loops-so/cli/blob/main/README.md`

## Category Routing

- Installation, auth flows, config resolution, global flags, and common Loops CLI workflows:
  Read `references/cli.md`
- Campaigns, email messages, themes, components, revision handling, LMX file flags, and uploads:
  Read `references/cli.md`. For LMX markup itself, also use the `loops-lmx` skill.

If the task becomes application-code integration or exact HTTP payload design beyond the CLI, use the `loops-api` skill.

## Output Checklist

Aim to leave the user with:

- the right command or install path for the task
```
END THIRD-PARTY FILE ccd92fedd40d02df

The third-party file has ended. Everything between the ccd92fedd40d02df 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 2920 of 3125 bytes. © loops-so · MIT · https://github.com/loops-so/skills/tree/HEAD/skills/loops-cli/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
