Cross ai
Skill Tanq16/claudex/internal/embedded/default-skills/cross-ai
User-invoked dispatcher that hands a task to one or more external headless CLI coding agents (agy, gemini, codex, cursor) or Claude Code headless and relays their output. Invoked explicitly as `/cross-ai <agent> [task]`. Do NOT auto-trigger this from incidental mentions of these tools, and never use it for native Claude Code sub-agents (the Task tool).From its SKILL.md
npx -y skills add Tanq16/claudex --skill cross-aiAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
6.2 KB, ~1.8k tokens by cl100k_base, as published. Nobody here has run it
cross-ai
Delegate the current task to an external CLI coding agent over bash, then relay its answer. You are the dispatcher: pick the command from the table, feed it the context, run it, report back. Nothing else.
This skill is explicit-invoke only (/cross-ai). It is NOT triggered by phrases like "use agy" on their own, and it is NOT the native Task tool — "launch a sub-agent" means the Task tool, not this.
Invocation
/cross-ai <agent> [task]
<agent>is one of:agy,gemini,codex,cursor,claude(Claude Code headless).[task]is the work. If omitted, use the surrounding request as the task.- Multiple agents in one request → run each on the same task, in parallel, and present results side by side labeled by agent. Two separate
/cross-ai agyand/cross-ai codexinvocations against the same ask are the same thing: launch both.
Dispatch table (read-only defaults)
Run these verbatim, substituting <TASK> and <FILE>. Each is read-only — no edits, no auto-approve of writes.
| Agent | Command |
|---|---|
agy | agy -p "<TASK> @<FILE>" --model gemini-3.1-pro-high --dangerously-skip-permissions < /dev/null 2>&1 |
gemini | gemini -m gemini-3.1-pro-preview -p "<TASK> @<FILE>" --output-format json | jq -r '.response' |
codex | codex exec -m gpt-5.5 --skip-git-repo-check "<TASK>" 2>/dev/null |
cursor | cursor-agent -p "<TASK>" --model gpt-5.5-high --trust --output-format json | jq -r '.result' |
claude | claude -p "<TASK>" --model claude-opus-4-8 --output-format json --allowedTools "Read,Grep,Glob,Bash" | jq -r '.result' |
@<FILE> injection is for agy/gemini. codex/cursor/claude read the current working directory themselves — reference paths in <TASK> and they will open them.
agy truncation guard: if its output looks cut off or garbled (it misbehaves on a non-TTY pipe), rerun under a pty and strip ANSI. script's flags differ by OS — claudex runs on both:
- macOS (BSD
script):script -q /dev/null agy -p "<TASK> @<FILE>" --model gemini-3.1-pro-high --dangerously-skip-permissions - Linux (GNU
script):script -qec 'agy -p "<TASK> @<FILE>" --model gemini-3.1-pro-high --dangerously-skip-permissions' /dev/null
Pipe either through perl -pe 's/\e\[[0-9;]*[A-Za-z]//g' to strip color codes (portable across macOS/Linux).
cursor workspace trust: cursor-agent refuses to run in an untrusted directory (it blocks on a "Workspace Trust Required" prompt instead of answering). The --trust in its command grants directory trust so the headless run proceeds; it is NOT --force/--yolo and does not auto-approve edits or command execution, so the read-only posture holds.
Execution recipe
- Stage context the agent can't see on its own. It starts blank — it does not inherit this conversation. If the task needs our analysis, a specific diff, or files outside its cwd, write that to a temp file first:
CTX=$(mktemp); e.g.git diff > "$CTX"orgh pr diff > "$CTX"for "review current PR". If the agent can gather it itself in the cwd (codex/cursor/claude can rungit diff), skip this. - Build the command from the table. Inject the staged file via
@$CTX(agy/gemini) or name$CTX/paths in<TASK>(codex/cursor/claude). - Run it with Bash. For multiple agents, launch them concurrently and wait for all.
- Relay each agent's raw output, labeled by agent. Don't compress or editorialize unless asked — the point is what the other model said.
Model override
Default to the flagship in the table. If the user names a model after the agent (/cross-ai cursor opus, /cross-ai cursor with grok, /cross-ai codex gpt-5.4), map it and pass it to that agent's model flag:
| Agent | Flag | Flagship (default) | Other selectable |
|---|---|---|---|
agy | --model | gemini-3.1-pro-high | gemini-3.5-flash-low, claude-opus-4-6-thinking, gpt-oss-120b-medium |
gemini | -m | gemini-3.1-pro-preview | gemini-3-pro-preview, gemini-2.5-pro, gemini-3-flash |
codex | -m | gpt-5.5 | gpt-5.4, gpt-5.4-mini, gpt-5.3-codex-spark |
cursor | --model | gpt-5.5-high | gpt-5.5-high-fast, claude-opus-4-8-thinking-high, composer-2.5, cursor-grok-4.5-high, gpt-5.3-codex |
claude | --model | claude-opus-4-8 | claude-sonnet-4-6, claude-opus-4-8[1m] |
Rules of engagement
- Just run it. Assume the binary is installed and authenticated. Do NOT
which, version-check,--help, or test-run first. Build the command and execute in one step. - Read-only by default. Never pass write/auto-approve flags (
--force,--yolo,--sandbox workspace-write,--permission-mode acceptEdits) unless the user explicitly asks the external agent to modify files. - Stale model id is the only thing to check. If a run fails because a model id was rejected, that is the one time to look: run the tool's list (
agy models,gemini --list-models,cursor-agent --list-models, or check--help), pick the current flagship, and rerun. Model ids drift; the table is a snapshot.cursor-agent --list-modelsprints real ids. Butagy modelsprints display names, not ids — the id is a lowercased/hyphenated form with a tier suffix (Gemini 3.1 Pro (High)→gemini-3.1-pro-high), the mapping is inconsistent (not every displayed tier resolves, and the dotted vs dashed version separator varies by family), so confirm a specific agy id with a one-lineagy -p "OK" --model <id> --dangerously-skip-permissionsrun before trusting it. - Auth failure → report and stop. If a run fails with an auth/login error, surface it verbatim and stop. Don't try to fix the other tool's credentials.
- Not for Claude sub-agents.
claudehere is the headless CLI process. The native Task tool ("launch a sub-agent") is unrelated and not dispatched through this skill.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.