Agent skill

Con CLI E2E

by nowledge-co in nowledge-co/con-terminal

Validate Con's local socket control plane against a real running app session, and write/run con-test integration tests.

MITAuto-check passedTesting & QA

Install Con CLI E2E

skills CLI
$ npx skills add nowledge-co/con-terminal --skill con-cli-e2e -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install nowledge-co/con-terminal con-cli-e2e --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/nowledge-co/con-terminal.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/con-cli-e2e .claude/skills/con-cli-e2e && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
con-cli-e2e
GitHub stars
625
Token cost
~1.2k tokens
SKILL.md length
522 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
MIT

At a glance

Validate Con's local socket control plane against a real running app session, and write/run con-test integration tests.

  • Works in 8 steps: Build the relevant crates. → Launch cargo run -p con. → Wait for /tmp/con.sock. → …
  • Testing con-cli
  • SKILL.md covers con-cli manual E2E and con-test integration tests
  • Calls cargo

What it does

Con CLI E2E is an agent skill from nowledge-co/con-terminal. Validate Con's local socket control plane against a real running app session, and write/run con-test integration tests. Use when testing con-cli, the Unix socket API, pane control, tmux control, in-session agent calls, or when writing E2E test cases in crates/con-test/testdata/.

Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering End-to-end testing, Integration testing and Test generation. It works with tmux. The repository describes itself as: The Native Terminal Emulator with a builtin AI Harness. The licence is MIT.

When your agent uses it

  • Testing con-cli
  • The Unix socket API
  • In-session agent calls
  • Writing E2E test cases in crates/con-test/testdata/

Example prompts

  • “/con-cli-e2e”

Workflow steps

8 steps, taken from the first numbered list in SKILL.md.

  1. Build the relevant crates.
  2. Launch cargo run -p con.
  3. Wait for /tmp/con.sock.
  4. Use con-cli --json identify, tabs list, and panes list before acting.
  5. Only use panes exec on panes that expose exec_visible_shell.
  6. Use tree / surfaces list only for pane-local surface validation.
  7. After surfaces create or surfaces split, use surfaces wait-ready --surface-id --timeout 10 before sending input that assumes an…
  8. Use agent ask to verify the real in-tab built-in agent session.

What it can do on your machine

Read from SKILL.md and the folder at commit 21089e5. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • cargo

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Con CLI E2E loads about 1.2k tokens when it runs. Until then it costs about 73 tokens; SKILL.md has 522 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~73
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from nowledge-co/con-terminal at commit 21089e5, republished under its MIT licence (© nowledge-co). 522 words, ~1,195 tokens.

Download SKILL.mdSave it as .claude/skills/con-cli-e2e/SKILL.md (or your agent's skills folder).
name
con-cli-e2e
description
Validate Con's local socket control plane against a real running app session, and write/run con-test integration tests. Use when testing con-cli, the Unix socket API, pane control, tmux control, in-session agent calls, or when writing E2E test cases in crates/con-test/testdata/.

con-cli E2E & con-test

Use this skill when the task is to verify that Con's CLI/control plane works against a live app window, or when writing/fixing integration tests in crates/con-test/testdata/.

Primary reference:


con-cli manual E2E

Default workflow:

  1. Build the relevant crates.
  2. Launch cargo run -p con.
  3. Wait for /tmp/con.sock.
  4. Use con-cli --json identify, tabs list, and panes list before acting.
  5. Only use panes exec on panes that expose exec_visible_shell.
  6. Use tree / surfaces list only for pane-local surface validation.
  7. After surfaces create or surfaces split, use surfaces wait-ready --surface-id <id> --timeout 10 before sending input that assumes an initialized shell.
  8. Use agent ask to verify the real in-tab built-in agent session.

Rules:

  • Prefer --json for every command in automated evaluation.
  • Prefer pane_id over pane_index for follow-up actions.
  • Prefer surface_id for follow-up actions only when testing the explicit surfaces.* API.
  • Keep existing pane and agent benchmarks on panes.*; surfaces are additive and must not change the built-in agent's pane model.
  • After visible execution, confirm the pane still reports shell_prompt and keeps exec_visible_shell.
  • If agent ask fails, check provider config/env before blaming the socket layer.

Known current limit:

  • panes create now reports surface_ready, is_alive, and has_shell_integration, but startup-command panes can still be in a non-shell foreground state immediately after creation. Treat them as provisional until panes list confirms the capabilities you need for the next step.

con-test integration tests

con-test is the E2E test runner for integration and interactive behavior. It launches a real con session, runs .test files against it via con-cli, and checks output.

Running tests
bash
# Build first
cargo build

# Run all tests
./target/debug/con-test crates/con-test/testdata/

# Run a single file
./target/debug/con-test crates/con-test/testdata/panes/split.test
Show full SKILL.md (250 more words)Show less
Test file format

Test files live in crates/con-test/testdata/<group>/<name>.test. Each step is a con-cli command followed by an assertion block:

# comment
con-cli --json <command>   # step description
---- <assertion>
<expected>

Assertion types:

AssertionMeaning
---- okCommand exits 0 (any output accepted)
---- containsstdout contains the literal string on the next line
---- json-subsetactual JSON is a superset of the expected JSON (subset match, deep)

The json-subset assertion only checks the keys you specify — extra fields in the actual output are ignored. Use it to assert specific fields without coupling to the full response shape.

Writing new tests
  • Unit-test functions in Rust (#[cfg(test)]) for logic. Use con-test only for integration and interactive behavior that requires a live session.
  • No low-value tests — don't write tests just to hit coverage. Every test should catch a real bug or document a real contract.
  • Group tests by domain: panes/, tabs/, agent/, system/.
  • After panes create, always add a panes wait step before asserting is_alive — the new pane's surface may not be ready immediately.
  • For agent panel tests, use agent open-panel-for-request to drive the motion state, then agent panel-state to assert the result.
Example test
# panes/split.test
con-cli --json panes list --tab 1  # start with 1 pane
---- json-subset
{"panes":[{"index":1}]}

con-cli --json panes create --tab 1 --location right  # split right
---- ok

con-cli --json panes wait --tab 1 --pane-index 2 --timeout 5  # wait for new pane
---- ok

con-cli --json panes list --tab 1  # both panes alive
---- json-subset
{"panes":[{"is_alive":true},{"is_alive":true}]}
Fixing failures

When a test fails with expected JSON is not a subset of actual JSON, the actual output is printed in full. Check:

  1. Is the command missing (unrecognized subcommand)? → Add the subcommand to con-cli and the ControlCommand handler.
  2. Is a field wrong/missing? → Fix the handler's response shape.
  3. Is the assertion racing (e.g. is_alive: false right after create)? → Add a panes wait or surfaces wait-ready step before the assertion.

© nowledge-co, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/con-cli-e2e of nowledge-co/con-terminal.

Open the folder on GitHubat commit 21089e5

Compare with similar skills

Con CLI E2E next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Con CLI E2E compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Con CLI E2E this skillnowledge-co/con-terminal625—~1.2kAutomated safety check: PassMIT
Drive MiMo CodeXiaomiMiMo/MiMo-Code14k—~3.9kAutomated safety check: PassMIT
Migrate E2E To Integrationopenshift/oc-mirror124—~1.5kAutomated safety check: PassApache-2.0
PR TestElite588/AUTOGPT103—~9.4kAutomated safety check: NotesCustom licence
Testing Strategiesancoleman/ai-design-components526—~3.8kAutomated safety check: PassMIT
Coveryonatangross/orchestkit288—~6.3kAutomated safety check: NotesMIT

Similar skills

  • Drive MiMo Code

    XiaomiMiMo/MiMo-Code

    Lets one MiMoCode process drive another, headless with JSON events or interactively through tmux, to test behavior and visual regressions with parseable evidence.

    14k GitHub stars~3.9k tokensUpdated 4 days ago
    Testing & QAAuto-check passed
  • Migrate E2E To Integration

    openshift/oc-mirror

    Migrate an oc-mirror e2e test case to the integration test suite, translating framework, registry, invocation, and assertion patterns

    124 GitHub stars~1.5k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • PR Test

    Elite588/AUTOGPT

    E2E manual testing of PRs/branches using docker compose, agent-browser, and API calls.

    103 GitHub stars~9.4k tokensUpdated 5 mo ago
    Testing & QAAuto-check: notes
  • Testing Strategies

    ancoleman/ai-design-components

    Strategic guidance for choosing and implementing testing approaches across the test pyramid.

    526 GitHub stars~3.8k tokensUpdated 10 mo ago
    Testing & QAAuto-check passed
  • Cover

    yonatangross/orchestkit

    Generate tests that do not exist yet. An agent skill from yonatangross/orchestkit.

    288 GitHub stars~6.3k tokensUpdated yesterday
    Testing & QAAuto-check: notes
  • Scenario Testing

    aiskillstore/marketplace

    This skill should be used when writing tests, validating features, or needing to verify code works.

    430 GitHub starsUsed in 1 repo~830 tokens
    Testing & QAAuto-check passed

More from nowledge-co/con-terminal

  • Changelog Release Notes

    nowledge-co/con-terminal

    Maintain Con's CHANGELOG.md and release notes. An agent skill from nowledge-co/con-terminal.

    625 GitHub stars~686 tokensUpdated today
    Auto-check passed
  • Release

    nowledge-co/con-terminal

    Run and verify Con beta, dev, and stable releases without publishing incomplete artifacts.

    625 GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Terminal Agent Benchmark

    nowledge-co/con-terminal

    Run and maintain Con's terminal-agent benchmark against a live app session.

    625 GitHub stars~822 tokensUpdated today
    Auto-check passed
  • Terminal Agent Improvement Loop

    nowledge-co/con-terminal

    Run a benchmark-driven improvement loop for Con's terminal agent.

    625 GitHub stars~681 tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Con CLI E2E

What does Con CLI E2E do?

Validate Con's local socket control plane against a real running app session, and write/run con-test integration tests. Con CLI E2E is an agent skill from nowledge-co/con-terminal. Validate Con's local socket control plane against a real running app session, and write/run con-test integration tests.

When should I use Con CLI E2E?

Con CLI E2E fits situations like: testing con-cli; the Unix socket API; in-session agent calls; writing E2E test cases in crates/con-test/testdata/.

How do I install Con CLI E2E in Claude Code?

Run `npx skills add nowledge-co/con-terminal --skill con-cli-e2e -a claude-code`. Or copy the skill folder (skills/con-cli-e2e in nowledge-co/con-terminal) into .claude/skills/con-cli-e2e in your project. Claude Code loads it when a task matches its description.

How do I install Con CLI E2E in Codex?

Run `npx skills add nowledge-co/con-terminal --skill con-cli-e2e -a codex`. Or copy the skill folder (skills/con-cli-e2e in nowledge-co/con-terminal) into .agents/skills/con-cli-e2e in your project. Codex loads it when a task matches its description.

Can I use Con CLI E2E in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nowledge-co/con-terminal --skill con-cli-e2e -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/con-cli-e2e, .gemini/skills/con-cli-e2e, .github/skills/con-cli-e2e and .opencode/skills/con-cli-e2e in your project.

What does Con CLI E2E need to run?

Going by SKILL.md and its folder, Con CLI E2E needs the command-line tools its instructions call (cargo).

Does Con CLI E2E access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Con CLI E2E safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Con CLI E2E use?

Con CLI E2E is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Con CLI E2E use?

About 1.2k tokens (SKILL.md is roughly 4.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Con CLI E2E?

Skills that share tags, products or a category with Con CLI E2E: Drive MiMo Code (XiaomiMiMo/MiMo-Code, 14k stars), Migrate E2E To Integration (openshift/oc-mirror, 124 stars), PR Test (Elite588/AUTOGPT, 103 stars) and Testing Strategies (ancoleman/ai-design-components, 526 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Con CLI E2E?

nowledge-co (a GitHub organization) maintains it in nowledge-co/con-terminal, which has 625 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 7, 2026.

Source: nowledge-co/con-terminal on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.