Skip to content
Back to skills

Llm Cli

ASecurity

Process textual and multimedia files with various LLM providers using the llm CLI. Supports both non-interactive and interactive modes with model selection, config persistence, and file input handling.

  • 3 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 7, 2026
ai-agentsgobashapiperformance

Works with

  • claude code
  • cli
  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 16 files and shows the line behind each finding

Scanned September 7, 2026

npx -y skills add levalencia/agent-god-mode --skill llm-cli --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Llm Cli?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Llm Cli
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/levalencia-llm-cli/badge)](https://www.skillsdirectory.com/skills/levalencia-llm-cli)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: llm-cli
description: Process textual and multimedia files with various LLM providers using the llm CLI. Supports both non-interactive and interactive modes with model selection, config persistence, and file input handling.
---

# LLM CLI Skill

## Purpose

This skill enables seamless interaction with multiple LLM providers (OpenAI, Anthropic, Google Gemini, Ollama) through the `llm` CLI tool. It processes textual and multimedia information with support for both one-off executions and interactive conversation modes.

## When to Use This Skill

Trigger this skill when:
- User wants to process text/files with an LLM
- User needs to choose between multiple available LLMs
- User wants interactive conversation with an LLM
- User needs to pipe content through an LLM for processing
- User wants to use specific model aliases (e.g., "claude-opus", "gpt-4o")

Example user requests:
- "Process this file with Claude"
- "Analyze this text with the fastest available model"
- "Start an interactive chat with OpenAI"
- "Use Gemini to summarize this document"
- "Chat mode with my local Ollama instance"

## Supported Providers & Models

### OpenAI
- **Latest Models (2025)**:
  - `gpt-5` - Most advanced model
  - `gpt-4-1` / `gpt-4.1` - Latest high-performance
  - `gpt-4-1-mini` / `gpt-4.1-mini` - Smaller, faster version
  - `gpt-4o` - Multimodal omni model
  - `gpt-4o-mini` - Lightweight multimodal
  - `o3` - Advanced reasoning
  - `o3-mini` / `o3-mini-high` - Reasoning variants

**Aliases**: `openai`, `gpt`

### Anthropic
- **Latest Models (2025)**:
  - `claude-sonnet-4.5` - Latest flagship model
  - `claude-opus-4.1` - Complex task specialist
  - `claude-opus-4` - Coding specialist
  - `claude-sonnet-4` - Balanced performance
  - `claude-3.5-sonnet` - Previous generation
  - `claude-3.5-haiku` - Fast & efficient

**Aliases**: `anthropic`, `claude`

### Google Gemini
- **Latest Models (2025)**:
  - `gemini-2.5-pro` - Most advanced
  - `gemini-2.5-flash` - Default fast model
  - `gemini-2.5-flash-lite` - Speed optimized
  - `gemini-2.0-flash` - Previous generation
  - `gemini-2.5-computer-use` - UI interaction

**Aliases**: `google`, `gemini`

### Ollama (Local)
- **Popular Models**:
  - `llama3.1` - Meta's latest (8b, 70b, 405b)
  - `llama3.2` - Compact versions (1b, 3b)
  - `mistral-large-2` - Mistral flagship
  - `deepseek-coder` - Code specialist
  - `starcode2` - Code models

**Aliases**: `ollama`, `local`

## Workflow Overview

```
User Input (with optional model)
    ↓
Check Available Providers (env vars)
    ↓
Determine Model to Use:
  - If specified: Use provided model
  - If ambiguous: Show selection menu
  - Otherwise: Use last remembered choice
    ↓
Load/Create Config (~/.claude/llm-skill-config.json)
    ↓
Detect Input Type:
  - stdin/piped
  - file path
  - inline text
    ↓
Execute llm CLI:
  - Non-interactive: Process & return
  - Interactive: Keep conversation loop
    ↓
Save Model Choice to Config
```

## Features

### 1. Provider Detection
- Checks environment variables for API keys
- Suggests available LLM providers on first run
- Detects: `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `GOOGLE_API_KEY`, `OLLAMA_BASE_URL`

### 2. Model Selection
- Accept model aliases (`gpt-4o`, `claude-opus`, `gemini-2.5-pro`)
- Accept provider aliases (`openai`, `anthropic`, `google`, `ollama`)
- Interactive menu when selection is ambiguous
- Remembers last used model in `~/.claude/llm-skill-config.json`

### 3. Input Processing
- Accepts stdin/piped input
- Processes file paths (detects: .txt, .md, .json, .pdf, images)
- Handles inline text prompts
- Supports multimedia files with appropriate encoding

### 4. Execution Modes

#### Non-Interactive (Default)
```bash
llm "Your prompt here"
llm --model gpt-4o "Process this text"
llm < file.txt
cat document.md | llm "Summarize"
```

#### Interactive Mode
```bash
llm --interactive
llm -i
llm --model claude-opus --interactive
```

### 5. Configuration
Persistent config location: `~/.claude/llm-skill-config.json`
```json
{
  "last_model": "claude-sonnet-4.5",
  "default_provider": "anthropic",
  "available_providers": ["openai", "anthropic", "google", "ollama"]
}
```

## Implementation Details

### Core Files
- `llm_skill.py` - Main skill orchestration
- `providers.py` - Provider detection & config
- `models.py` - Model definitions & aliases
- `executor.py` - Execution logic (interactive/non-interactive)
- `input_handler.py` - Input type detection

### Key Functions

#### `detect_providers()`
- Scans environment for provider API keys
- Returns dict of available providers

#### `get_model_selector(input_text, provider=None)`
- Returns selected model, showing menu if needed
- Respects `last_model` config preference

#### `load_input(input_source)`
- Handles stdin, file paths, or inline text
- Returns content string

#### `execute_llm(content, model, interactive=False)`
- Calls `llm` CLI with appropriate parameters
- Manages stdin/stdout for interactive mode

### Usage in Claude Code

When user invokes this skill, Claude should:
1. Parse input for model specification (e.g., `--model gpt-4o`)
2. Call skill with content and optional model parameter
3. Wait for provider/model selection if needed
4. Execute and return results
5. For interactive mode, maintain conversation loop

## Error Handling

- If no providers available: Suggest installing API keys
- If model not found: Show available models for chosen provider
- If llm CLI not installed: Suggest installation via `pip install llm`
- If file not readable: Fall back to treating as inline text

## Configuration

Users can pre-configure preferences:
```json
{
  "last_model": "claude-sonnet-4.5",
  "default_provider": "anthropic",
  "interactive_mode": false,
  "available_providers": ["openai", "anthropic"]
}
```

## Slash Command Integration

Support `/llm` command:
```
/llm process this text
/llm --interactive
/llm --model gpt-4o analyze this
```

Files in this skill

  • FILES.md9.2 KB
  • GROQ_INTEGRATION.md6 KB
  • IMPLEMENTATION_SUMMARY.md8.5 KB
  • INSTALL.md4.7 KB
  • OPENROUTER_INTEGRATION.md9.7 KB
  • QUICKSTART.md3.3 KB
  • QUICK_REFERENCE.md6.3 KB
  • README.md7.5 KB
  • SKILL.md5.8 KB
  • START_HERE.md7 KB
  • executor.py4.9 KB
  • input_handler.py4.9 KB
  • llm_skill.py7 KB
  • models.py8 KB
  • providers.py4.7 KB
  • requirements.txt143 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…