Back to Blog

design-creative

Test Nori Skillsets Subcommands E2E with Tmux Isolation

Learn how to run interactive end-to-end tests for nori-skillsets CLI subcommands in isolated environments using tmux and a step-by-step agent skill.

OpenAgentSkillPublished:

Where this fits

You're building a nori-skillsets CLI plugin and need to verify that a subcommand behaves correctly when a user actually runs it in a terminal. Manual testing is slow and error-prone, and unit tests miss interactive edge cases like prompts, output formatting, and filesystem side effects. This skill gives your agent a repeatable, isolated way to drive the CLI through tmux, seed data, and assert on screen output—all without polluting your real environment.

Why agents benefit

  • Full interactive coverage: The agent can send keystrokes, read terminal output, and verify the exact UX a human would see, not just function return values.
  • Filesystem isolation: Every test runs in a fresh $E2E_DIR, so you can create, modify, and delete files without worrying about your actual project or global config.
  • Deterministic setup: The e2e-setup script builds the project and exports the necessary variables (E2E_DIR, SKS, NORI_GLOBAL_CONFIG), removing guesswork about environment state.
  • Structured test plans: The skill forces you to write a concrete assert-act-assert sequence before touching tmux, which reduces flaky tests and makes debugging easier.
  • Reusable tmux skills: It delegates all terminal interaction to the TUI Puppeteering skill, so you get battle‑tested wrappers instead of ad‑hoc tmux commands.

Practical scenarios

Verifying a list subcommand with seeded files

You want to confirm that nori-skillsets list shows the correct output when a specific directory contains a mix of valid and invalid skill definitions. The agent seeds $E2E_DIR with sample files, launches the command inside tmux, and asserts the expected table appears.

Testing an interactive create prompt

Your create subcommand asks for a skill name and description interactively. The agent writes a test plan that sends the inputs via tui-start, waits for the confirmation message, and then checks that the new files were created in the isolated filesystem.

Debugging a subcommand that reads global config

The e2e-setup script sets NORI_GLOBAL_CONFIG to a temporary path. You can test how your subcommand behaves when that config is missing or malformed, without touching your real user config. The agent can also verify that the subcommand handles errors gracefully by asserting on stderr output.

Add it to your agent workflow

Install the skill with:

npx skills add tilework-tech/nori-skillsets --skill E2E Testing Nori Skillsets Subcommands

Then, when you need to test a subcommand, instruct your agent to follow the skill's steps: run e2e-setup, read the TUI Puppeteering skill, write a test plan, seed data, and execute the tmux session. For a complete overview of this skill and similar ones, check the OpenAgentSkill listing.

Compare before adopting

Before adding this skill, evaluate it against alternatives like simple shell scripts or unit tests that mock stdin/stdout. Look at the repository's commit history and issue tracker to see if it's actively maintained. Consider whether your CLI needs truly interactive testing or if headless test runners suffice. Also check if the skill's dependency on tmux fits your agent's execution environment (e.g., CI vs. local).

Why it is worth tracking

With 154 stars and a clear, focused scope, this skill has meaningful community traction. It addresses a real pain point—interactive CLI testing—that most agent frameworks ignore. If you're building or maintaining nori-skillsets subcommands, this skill can save hours of manual testing and reduce the risk of shipping regressions. Keep an eye on its release cadence and contributions; if it stays active, it will likely become a standard part of the nori-skillsets developer toolkit.

Featured Skill

E2E Testing Nori Skillsets Subcommands

Skill by tilework-tech