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.
git clone https://github.com/majiayu000/claude-skill-registry
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"
skills/data/clink-standalone/SKILL.mdClink 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
- Copy the skill to your Claude skills directory:
cp -r vc/clink-standalone ~/.claude/skills/clink-standalone
- 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
| CLI | Install | Strengths | Roles |
|---|---|---|---|
| gemini | | 1M context, web search | default, planner, codereviewer |
| codex | Sourcegraph Codex | Code analysis, review | default, planner, codereviewer |
| claude | Claude Code | General purpose | default, planner, codereviewer |
Role Definitions
| Role | Purpose | Best For |
|---|---|---|
| General tasks | Questions, summaries, quick answers |
| Strategic planning | Multi-phase plans, architecture, migrations |
| Code analysis | Security 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
-
Choose the Right CLI
- Large context → gemini
- Code tasks → codex
- General tasks → claude
-
Use Appropriate Roles
- Strategic work → planner
- Code review → codereviewer
- Everything else → default
-
File References
- Pass file paths via
, CLI reads what it needs--files - More efficient than embedding full content
- Pass file paths via
-
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.