Claude-skill-registry clink-standalone

Standalone CLI bridge - launch external AI CLIs (gemini, codex, claude) directly without MCP server. Use when you need to delegate tasks to specialized CLI tools with their own context windows. Supports role-based prompts and file references.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/clink-standalone" ~/.claude/skills/majiayu000-claude-skill-registry-clink-standalone && rm -rf "$T"
manifest: skills/data/clink-standalone/SKILL.md
source content

Clink Standalone - CLI Bridge Skill (No MCP Required)

Overview

This skill provides a standalone interface to launch external AI CLI tools (gemini, codex, claude) without requiring an MCP server. It runs as a local Python script that directly executes CLI commands.

Key Benefits:

  • No MCP Server Needed: Runs standalone as a Python script
  • Isolated Context: Fresh context window for each CLI
  • Full CLI Capabilities: Web search, file tools, native features
  • Role-based Prompts: Pre-configured personas (default, planner, codereviewer)

Prerequisites

Before using this skill, install the CLIs you want to use:

# Gemini CLI (Google)
npm install -g @google/gemini-cli
gemini auth login

# Codex CLI (Sourcegraph)
# Visit https://docs.sourcegraph.com/codex

# Claude Code (Anthropic)
# Visit https://www.anthropic.com/claude-code

Installation

  1. Copy the skill to your Claude skills directory:
cp -r vc/clink-standalone ~/.claude/skills/clink-standalone
  1. Install Python dependencies:
pip install pydantic

Usage

Basic Usage

# Run from the skill directory
cd ~/.claude/skills/clink-standalone
python bin/clink.py <cli_name> "<prompt>"

Examples

# Ask Gemini a question
python bin/clink.py gemini "Explain async/await in Python"

# Use Codex for code review
python bin/clink.py codex "Review this code" --files src/auth.py

# Use planner role
python bin/clink.py gemini "Plan a microservices migration" --role planner

# Output as JSON
python bin/clink.py gemini "What is Rust?" --json

# List available CLIs
python bin/clink.py --list-clients

# List roles for a CLI
python bin/clink.py --list-roles gemini

In Claude Code

When using this skill in Claude Code, Claude will execute the clink script:

User: "Use gemini to explain Rust ownership"

Claude will run:
python bin/clink.py gemini "Explain Rust ownership system"

Available CLIs and Roles

CLIInstallStrengthsRoles
gemini
npm install -g @google/gemini-cli
1M context, web searchdefault, planner, codereviewer
codexSourcegraph CodexCode analysis, reviewdefault, planner, codereviewer
claudeClaude CodeGeneral purposedefault, planner, codereviewer

Role Definitions

RolePurposeBest For
default
General tasksQuestions, summaries, quick answers
planner
Strategic planningMulti-phase plans, architecture, migrations
codereviewer
Code analysisSecurity review, quality checks, bug hunting

Command Reference

python bin/clink.py <cli_name> <prompt> [OPTIONS]

Options:
  --role, -r       Role to use (default: default)
  --files, -f      File paths to reference
  --images, -i     Image paths to include
  --config-dir     Custom config directory
  --json           Output as JSON
  --list-clients   List available CLIs
  --list-roles     List roles for a CLI

Directory Structure

clink-standalone/
├── bin/
│   └── clink.py           # Main CLI script
├── clink_core/
│   ├── __init__.py
│   ├── models.py          # Pydantic models
│   ├── registry.py        # Config loader
│   └── runner.py          # CLI execution
├── config/
│   ├── gemini.json        # Gemini CLI config
│   ├── codex.json         # Codex CLI config
│   └── claude.json        # Claude CLI config
├── systemprompts/
│   ├── gemini/
│   ├── codex/
│   └── claude/
└── SKILL.md               # This file

Configuration

CLI configurations are in

config/*.json
:

{
  "name": "gemini",
  "command": "gemini",
  "additional_args": ["--telemetry", "false", "--yolo", "-o", "json"],
  "timeout_seconds": 300,
  "roles": {
    "default": {"prompt_path": "systemprompts/gemini/default.txt"},
    "planner": {"prompt_path": "systemprompts/gemini/planner.txt"},
    "codereviewer": {"prompt_path": "systemprompts/gemini/codereviewer.txt"}
  }
}

Customize by editing these files.

System Prompts

Role-specific prompts are in

systemprompts/<cli>/<role>.txt
. Edit these to customize behavior.

Error Handling

CLI Not Found

Error: Executable 'gemini' not found in PATH

Solution: Install the CLI first (see Prerequisites)

Timeout

Error: CLI 'gemini' timed out after 300 seconds

Solution: Increase

timeout_seconds
in config or break into smaller tasks

Invalid Output

Output was 75000 characters, exceeding limit

Solution: Narrow your prompt or request a summary

Best Practices

  1. Choose the Right CLI

    • Large context → gemini
    • Code tasks → codex
    • General tasks → claude
  2. Use Appropriate Roles

    • Strategic work → planner
    • Code review → codereviewer
    • Everything else → default
  3. File References

    • Pass file paths via
      --files
      , CLI reads what it needs
    • More efficient than embedding full content
  4. Break Down Large Tasks

    • If timeout occurs, split into smaller subtasks

Python API

You can also use clink as a Python module:

from clink_core import get_registry, run_cli

# Get registry
registry = get_registry()

# Get CLI and role
client = registry.get_client("gemini")
role = client.get_role("default")

# Run
result = run_cli(
    client=client,
    role=role,
    prompt="Explain async/await in Python",
    files=["/path/to/file.py"],
)

print(result.content)
print(result.metadata)

License

This is a standalone extraction of the clink functionality from zen-mcp-server.