Managing Dashboards
PostHog/posthog
Guides PostHog engineers through dashboard platform and scene changes.
Use TesterArmy CLI to create, organize, and run dashboard-managed QA tests.
$ npx skills add novuhq/novu --skill testerarmy-cli -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install novuhq/novu testerarmy-cli --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/novuhq/novu.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/testerarmy-cli .claude/skills/testerarmy-cli && rm -rf skills-srcUse ~/.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/
Install the "testerarmy-cli" agent skill from https://github.com/novuhq/novu/tree/next/.agents/skills/testerarmy-cli into .claude/skills/testerarmy-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testerarmy-cli", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/novuhq/novu/tree/next/.agents/skills/testerarmy-cliType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add novuhq/novu --skill testerarmy-cli -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install novuhq/novu testerarmy-cli --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/novuhq/novu.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/testerarmy-cli .agents/skills/testerarmy-cli && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "testerarmy-cli" agent skill from https://github.com/novuhq/novu/tree/next/.agents/skills/testerarmy-cli into .agents/skills/testerarmy-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testerarmy-cli", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add novuhq/novu --skill testerarmy-cli -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install novuhq/novu testerarmy-cli --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/novuhq/novu.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/testerarmy-cli .cursor/skills/testerarmy-cli && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "testerarmy-cli" agent skill from https://github.com/novuhq/novu/tree/next/.agents/skills/testerarmy-cli into .cursor/skills/testerarmy-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testerarmy-cli", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/novuhq/novu.git --path .agents/skills/testerarmy-cli--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add novuhq/novu --skill testerarmy-cli -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install novuhq/novu testerarmy-cli --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/novuhq/novu.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/testerarmy-cli .gemini/skills/testerarmy-cli && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "testerarmy-cli" agent skill from https://github.com/novuhq/novu/tree/next/.agents/skills/testerarmy-cli into .gemini/skills/testerarmy-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testerarmy-cli", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install novuhq/novu testerarmy-cliInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add novuhq/novu --skill testerarmy-cli -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/novuhq/novu.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/testerarmy-cli .github/skills/testerarmy-cli && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "testerarmy-cli" agent skill from https://github.com/novuhq/novu/tree/next/.agents/skills/testerarmy-cli into .github/skills/testerarmy-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testerarmy-cli", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add novuhq/novu --skill testerarmy-cli -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install novuhq/novu testerarmy-cli --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/novuhq/novu.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/testerarmy-cli .opencode/skills/testerarmy-cli && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "testerarmy-cli" agent skill from https://github.com/novuhq/novu/tree/next/.agents/skills/testerarmy-cli into .opencode/skills/testerarmy-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testerarmy-cli", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
testerarmy-cliUse TesterArmy CLI to create, organize, and run dashboard-managed QA tests.
Testerarmy CLI is an agent skill from novuhq/novu. Use TesterArmy CLI to create, organize, and run dashboard-managed QA tests. Prefer saved tests, groups, project context, credentials, and remote runs over one-off local prompts. Trigger when defining regression coverage, adding QA flows, or wiring CI checks.
Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `agents/openai.yaml` and `references/reporting-template.md`).
The repository describes itself as: The open-source communication infrastructure for agents and products. The licence is MIT.
Read from SKILL.md and the folder at commit 8a05b88. It shows what the files ask for, not the result of running them.
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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and json).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
TESTERARMY_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Testerarmy CLI loads about 1.6k tokens when it runs, and up to ~1.8k if it reads all its reference files. Until then it costs about 68 tokens; SKILL.md has 375 words of instructions outside code blocks.
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.
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.
The full file from novuhq/novu at commit 8a05b88, republished under its MIT licence (© novuhq). 375 words, ~1,637 tokens.
.claude/skills/testerarmy-cli/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Create dashboard-managed QA coverage with ta / testerarmy.
Default to saved dashboard tests, groups, project context, credentials, and
remote runs. Use local ta run "..." only for quick exploration.
Check auth:
ta status --jsonIf needed:
ta auth
TESTERARMY_API_KEY=<key> ta status --jsonDiscover scope:
ta projects list --json
ta groups list --project <projectId> --json
ta tests list --project <projectId> --jsonUse IDs exactly as returned.
Create a project:
echo '{"name":"Example","url":"https://example.com","projectType":"web"}' | ta projects create --jsonStore app knowledge:
echo '{"category":"site_structure","title":"Auth route","content":"Login is at /login","importance":"high"}' | ta memories create --project <projectId> --jsonMemory categories: site_structure, test_insights, user_preferences.
Create credentials for login or inbox flows:
echo '{"kind":"login","label":"Admin","username":"admin@example.com","password":"secret"}' | ta projects credentials-create <projectId> --json
echo '{"kind":"inbox","label":"Signup inbox"}' | ta projects credentials-create <projectId> --jsonNever print real secrets in final messages.
Create:
echo '{"title":"Login flow","description":"User can sign in and reach the dashboard","steps":[{"title":"Navigate to /login","type":"act"},{"title":"Sign in with the saved admin credentials","type":"login","credentialId":"<credentialId>"},{"title":"Dashboard loads and shows the project list","type":"assert"}]}' | ta tests create --project <projectId> --jsonCreate in a group:
echo '{"title":"Pricing CTA","steps":[{"title":"Open /pricing","type":"act"},{"title":"Click the primary CTA","type":"act"},{"title":"Signup or dashboard flow starts","type":"assert"}]}' | ta tests create --project <projectId> --group <groupId> --jsonPayload:
{
"title": "string, required",
"description": "string, optional",
"platform": "web or mobile, optional",
"steps": [
{ "title": "User action", "type": "act" },
{ "title": "Expected result", "type": "assert" },
{ "title": "Login instruction", "type": "login", "credentialId": "uuid" },
{ "title": "Use temporary email", "type": "login", "temporaryEmail": true },
{ "title": "Screenshot label", "type": "screenshot" }
]
}Rules:
act for navigation, clicks, typing, upload, and other user actions.assert for visible outcomes, persisted state, email delivery, or URL changes.login with credentialId or temporaryEmail; do not put passwords in step titles.screenshot only for important visual checkpoints.Inspect before changing:
ta tests get <testId> --jsonUpdate title, description, or steps:
echo '{"title":"Updated login smoke"}' | ta tests update <testId> --json
echo '{"steps":[{"title":"Open /login","type":"act"},{"title":"Sign in","type":"login","credentialId":"<credentialId>"},{"title":"Dashboard is visible","type":"assert"}]}' | ta tests update <testId> --jsonReplacing steps requires the complete array.
Create suites:
echo '{"projectId":"<projectId>","name":"Smoke"}' | ta groups create --json
ta groups add-test <groupId> <testId> --json
ta groups remove-test <groupId> <testId> --jsonCommon groups: Smoke, Auth, Core journeys, Mobile smoke.
Modes:
--remote: queues the saved test in TesterArmy cloud.Local debugging:
ta tests run <testId> --url http://localhost:3000 --json
ta tests run --group <groupId> --project <projectId> --url http://localhost:3000 --parallel 3 --jsonRemote validation:
ta tests run <testId> --remote --wait --json
ta tests run --group <groupId> --project <projectId> --remote --wait --jsonDefaults:
--remote: local browser execution.--remote: cloud execution.--wait: wait for remote results.--headed, --browser, --timeout, and --system-prompt-file are ignored with --remote.--environment production|preview.--mode fast|deep.CI:
ta ci --group <groupId> --project <projectId> --target-url https://staging.example.com --jsonRuns:
ta runs list --project <projectId> --json
ta runs get <runId> --json
ta runs wait <runId> --timeout 600000 --json
ta runs cancel <runId> --jsonUpload an iOS Simulator app before cloud runs:
ta upload-app --app-path ios/build/Build/Products/Release-iphonesimulator/MyApp.app --project <projectId> --json
ta ci --group <groupId> --project <projectId> --app-id <appId> --delete-app-after-run --jsonSupported uploads: .app, .app.zip, .zip, .app.tar.gz, .tar.gz, .tgz.
.ipa and Android artifacts are not supported yet.
ta run <prompt> runs an ad hoc local browser test:
ta run "check pricing CTA" --url https://example.com --jsonUse only to explore before creating or updating dashboard tests. Use
ta tests create and ta tests run --group for durable workflows.
Report:
Do not claim durable coverage unless ta tests create or ta tests update ran.
| File | Description |
|---|---|
| reporting-template.md | Dashboard coverage report template |
© novuhq, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in .agents/skills/testerarmy-cli of novuhq/novu.
Open the folder on GitHubat commit 8a05b88
Testerarmy CLI 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Testerarmy CLI this skillnovuhq/novu | 40k | — | ~1.6k | Automated safety check: Pass | MIT | |
| Managing DashboardsPostHog/posthog | 40k | — | ~2.7k | Automated safety check: Pass | Custom licence | |
| Manage Dashboard WidgetsPostHog/posthog | 40k | — | ~2.3k | Automated safety check: Pass | Custom licence | |
| DashboardInsForge/InsForge | 13k | — | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| Secrets Managementdavila7/claude-code-templates | 32k | 12 repos | ~2k | Automated safety check: Pass | MIT | |
| Organizationthedaviddias/Front-End-Checklist | 74k | — | ~609 | Automated safety check: Pass | MIT |
PostHog/posthog
Guides PostHog engineers through dashboard platform and scene changes.
PostHog/posthog
Guides PostHog engineers through dashboard widget platform work — ship a new widgettype (WIDGETREGISTRY, catalog, runwidgets, WidgetCard) or update a shipped type (config, query, layout, RBAC, tile…
InsForge/InsForge
A skill your agent uses when contributing to InsForge's shared dashboard package.
davila7/claude-code-templates
Secure secrets management practices for CI/CD pipelines using Vault, AWS Secrets Manager, and other tools.
thedaviddias/Front-End-Checklist
A skill your agent uses when auditing structured data on a business or brand website homepage.
RightNow-AI/openfang
Project management expert for Agile, estimation, risk management, and stakeholder communication
novuhq/novu
Build terminal user interfaces (TUIs) using Ink (React for CLIs) and @inkjs/ui with a reactive, session-driven wizard pattern.
novuhq/novu
Design notification workflows the Novu way — choose channels, set severity, decide when a workflow is critical, configure digests, and route based on subscriber state.
novuhq/novu
Integrate Novu's in-app notification inbox into web applications.
novuhq/novu
Configure notification preferences in Novu at the workflow and subscriber level.
novuhq/novu
Create, update, search, and delete subscribers in Novu. An agent skill from novuhq/novu.
novuhq/novu
Trigger Novu notification workflows to send messages across email, SMS, push, chat, and in-app channels.
Use TesterArmy CLI to create, organize, and run dashboard-managed QA tests. Testerarmy CLI is an agent skill from novuhq/novu. Use TesterArmy CLI to create, organize, and run dashboard-managed QA tests.
Testerarmy CLI fits situations like: defining regression coverage; adding QA flows; wiring CI checks.
Run `npx skills add novuhq/novu --skill testerarmy-cli -a claude-code`. Or copy the skill folder (.agents/skills/testerarmy-cli in novuhq/novu) into .claude/skills/testerarmy-cli in your project. Claude Code loads it when a task matches its description.
Run `npx skills add novuhq/novu --skill testerarmy-cli -a codex`. Or copy the skill folder (.agents/skills/testerarmy-cli in novuhq/novu) into .agents/skills/testerarmy-cli in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add novuhq/novu --skill testerarmy-cli -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/testerarmy-cli, .gemini/skills/testerarmy-cli, .github/skills/testerarmy-cli and .opencode/skills/testerarmy-cli in your project.
Going by SKILL.md and its folder, Testerarmy CLI needs credentials named TESTERARMY_API_KEY. Our summary lists: A credential in TESTERARMY_API_KEY.
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.
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.
Testerarmy CLI is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.6k tokens (SKILL.md is roughly 6.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 155 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Testerarmy CLI: Managing Dashboards (PostHog/posthog, 40k stars), Manage Dashboard Widgets (PostHog/posthog, 40k stars), Dashboard (InsForge/InsForge, 13k stars) and Secrets Management (davila7/claude-code-templates, 32k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
novuhq (a GitHub organization) maintains it in novuhq/novu, which has 40,134 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 9, 2026.
Source: novuhq/novu on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.