clink-standalone
A Python script that lets Claude execute external AI CLI tools (Gemini, Codex, Claude Code) directly without needing an MCP server. It provides role-based prompts, file reference support, and configurable timeouts for delegating tasks to specialized tools.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install clink-standalone
Repository
A Python script that lets Claude execute external AI CLI tools (Gemini, Codex, Claude Code) directly without needing an MCP server. It provides role-based prompts, file reference support, and configurable timeouts for delegating tasks to specialized tools.
Open repositoryBest for
Primary workflow: Analyze Data & AI.
Technical facets: Integration, Backend, Full Stack, Data / AI.
Target audience: Developers who already use multiple AI CLI tools and want Claude to orchestrate them without MCP server overhead.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: VCnoC.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install clink-standalone into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://www.skillhub.club/skills/clink-standalone before adding clink-standalone to shared team environments
- Use clink-standalone for integration workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
name: clink-standalone
description: "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."
---
# 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:
```bash
# 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:**
```bash
cp -r vc/clink-standalone ~/.claude/skills/clink-standalone
```
2. **Install Python dependencies:**
```bash
pip install pydantic
```
## Usage
### Basic Usage
```bash
# Run from the skill directory
cd ~/.claude/skills/clink-standalone
python bin/clink.py <cli_name> "<prompt>"
```
### Examples
```bash
# 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** | `npm install -g @google/gemini-cli` | 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 |
|------|---------|----------|
| `default` | General tasks | Questions, summaries, quick answers |
| `planner` | Strategic planning | Multi-phase plans, architecture, migrations |
| `codereviewer` | 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`:
```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:
```python
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.