By testsigmahq
Capture Claude Code session context for Testsigma — SSO auth, project pinning, ticket mapping, and automatic grouping signals (branch, repo, tickets).
Show Atto commands and how to use them
Authenticate with Testsigma so Atto can capture and ingest your sessions
Clear locally stored Testsigma credentials for Atto
Map a ticket key to the current session's workflow (auto-routes to sprint)
List Testsigma projects and pin the active project for Atto
Matches all tools
Hooks run on every tool call, not just specific ones
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Hooks-based capture of Claude Code session context for downstream systems (e.g. Testsigma): prompts, tool inputs/outputs (including large reads), subagent boundaries, stop/summary signals, and transcript paths.
This repo is also a marketplace (.claude-plugin/marketplace.json lists atto).
From GitHub (no clone):
claude plugin marketplace add testsigmahq/atto-claude-plugin
claude plugin install atto@Testsigma
From a local clone (for development):
git clone [email protected]:testsigmahq/atto-claude-plugin.git
cd atto-claude-plugin
claude plugin marketplace add ./
claude plugin install atto@Testsigma
claude plugin list should then show atto@Testsigma as enabled.
To update after a code change, bump version in plugins/atto/.claude-plugin/plugin.json and run claude plugin update atto@Testsigma. To remove: claude plugin uninstall atto@Testsigma && claude plugin marketplace remove Testsigma.
Requirements: Python 3.9+ on PATH as python3 (standard on macOS/Linux).
Capture only ships data once you log in:
/atto:login # SSO; stores refresh token in OS keychain. Run once per machine.
Until then hooks run as a no-op — nothing is sent remotely.
| Command | Purpose |
|---|---|
/atto:login | Authenticate via SSO. Stores refresh token in OS keychain. |
/atto:logout | Clear local credentials (server-side revoke not yet supported). |
/atto:project list [search] | List accessible Testsigma projects (optional substring filter). |
/atto:project use <project_id> | Pin a project; future events carry it. |
/atto:project current | Show the pinned project. |
/atto:map ticket <KEY> | Link a ticket (Jira / ADO / Linear / ClickUp / GitHub) to the session's workflow. |
/atto:help | Show commands and typical flow. |
Typical flow: /atto:login → /atto:project list then /atto:project use <id> → work on a branch (each session auto-resolves to a workflow) → /atto:map ticket <KEY>.
| Hook | Captured |
|---|---|
| SessionStart | session_id, cwd, transcript_path, start reason |
| UserPromptSubmit | Raw user prompt |
| Pre/PostToolUse | Tool name, input, and tool_response (e.g. full Read content) |
| PostToolUseFailure | Tool errors |
| Subagent Start/Stop | Subagent id/type; agent transcript path |
| Stop / StopFailure | Last assistant message or API error |
| SessionEnd | Exit reason |
Each hook POSTs to {host}/api/v1/plugin/events (host from /atto:login). Read/Write/Edit file snapshots and large binaries (base64 images, long strings) are also captured and sent as attachments. Nothing is written to a local event log.
Per-session state lives under $CLAUDE_PLUGIN_DATA/sessions/<session_id>/ (override with TESTSIGMA_CONTEXT_DIR) — a session_manifest.json (cwd, transcript, git/ticket grouping signals, Testsigma link) plus attachments/ and context_files/.
Sensitive files are always blocked regardless of settings — .env*, private keys (*.pem/*.key/*.p12/*.jks), credentials*, service-account*.json, .netrc, .pgpass, and anything under ~/.ssh, ~/.gnupg, ~/.aws/credentials, ~/.gcloud/legacy_credentials. Blocked files are sent as {skipped: true, reason: 'sensitive_path'}.
Noise dirs are excluded from capture — files under dependency, build, and VCS directories are never snapshotted or sent. Built-in list:
node_modules bower_components jspm_packages .pnp .yarn
.next .nuxt .svelte-kit .angular .astro .expo .docusaurus
.cache .parcel-cache .turbo .vite .webpack
dist build out .output coverage .nyc_output
.venv venv __pycache__ .mypy_cache .pytest_cache .ruff_cache .tox .eggs *.egg-info
target vendor .gradle .mvn
.terraform .serverless
Pods Carthage DerivedData
.git .hg .svn .idea .vscode
Env-var toggles (accept true/false/yes/no/1/0):
| Variable | Default | Effect |
|---|---|---|
TESTSIGMA_CONTEXT_INCLUDE_FILES | true | Send attachment bytes; false = manifest metadata only |
TESTSIGMA_DISABLE_CONTEXT_FILE_SNAPSHOTS | unset | true skips local context_files/ snapshots |
TESTSIGMA_SENSITIVE_PATTERNS | unset | Comma-separated globs added to the sensitive denylist |
TESTSIGMA_EXCLUDE_PATTERNS | unset | Comma-separated globs added to the noise-exclusion list |
Additional tuning knobs (attachment size caps, webhook retries/timeout, blob externalization threshold) are documented inline in scripts/capture_hook.py and scripts/capture_sinks.py.
npx claudepluginhub testsigmahq/atto-claude-plugin --plugin attoComplete collection of battle-tested Claude Code configs from an Anthropic hackathon winner - agents, skills, hooks, and rules evolved over 10+ months of intensive daily use
Comprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
Comprehensive .NET development skills for modern C#, ASP.NET, MAUI, Blazor, Aspire, EF Core, Native AOT, testing, security, performance optimization, CI/CD, and cloud-native applications
Harness-native ECC operator layer - 67 agents, 271 skills, 92 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses