configure-plugin/skills/configure-web-session/SKILL.md
SessionStart hook for Claude Code web sessions to install tools (helm, terraform, gitleaks, just). Use when CI tools fail in remote sessions due to missing binaries.
npx skillsauth add laurigates/claude-plugins configure-web-sessionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Check and configure a SessionStart hook that installs missing tools when
Claude Code runs on the web.
| Use this skill when... | Use another approach when... |
|------------------------|------------------------------|
| Pre-commit hooks fail in remote sessions (tool not found) | Project has no infrastructure tooling (plain npm/pip is enough) |
| just recipes fail because just, helm, terraform, or similar are absent | Tools are already available in the base image (check with check-tools) |
| Setting up a new repo for unattended Claude Code on the web tasks | Only need to set env vars — use environment variables in the web UI instead |
| Auditing whether scripts/install_pkgs.sh is current and idempotent | Debugging a specific hook failure — fix the hook itself first |
| Onboarding a repo to Claude Code on the web for the first time | Project uses only standard language runtimes (python, node, go, rust) |
find . -name 'install_pkgs.sh' -path '*/scripts/*'find . -maxdepth 3 -name 'settings.json' -path '*/.claude/*'find . -maxdepth 1 -name '.pre-commit-config.yaml'find . -maxdepth 1 \( -name 'justfile' -o -name 'Justfile' \)find . -maxdepth 3 -name 'Chart.yaml' -print -quitfind . -maxdepth 3 \( -name '*.tf' -o -type d -name 'terraform' \) -print -quitParse from $ARGUMENTS:
--check-only: Report current state without creating or modifying files--fix: Apply all changes automatically without prompting--tools <list>: Comma-separated list of tool names to install (overrides auto-detection)
helm, terraform, tflint, actionlint, helm-docs, gitleaks, just, pre-commitExecute this web-session dependency setup:
Auto-detect which tools are needed from project signals:
| Signal | Tools needed |
|--------|-------------|
| .pre-commit-config.yaml contains gitleaks | gitleaks, pre-commit |
| .pre-commit-config.yaml contains actionlint | actionlint, pre-commit |
| .pre-commit-config.yaml contains tflint | tflint, pre-commit |
| .pre-commit-config.yaml contains helm | helm, helm-docs, pre-commit |
| Chart.yaml exists anywhere | helm, helm-docs |
| *.tf or terraform/ directory exists | terraform, tflint |
| Justfile or justfile exists | just |
| --tools flag provided | Use that list exactly |
| Any pre-commit hook present | pre-commit |
.claude/settings.json if it existsSessionStart hook that references install_pkgs.shscripts/install_pkgs.sh for completeness — verify each detected tool has an install blockReport current status:
| Item | Status |
|------|--------|
| scripts/install_pkgs.sh exists | EXISTS / MISSING |
| SessionStart hook configured | CONFIGURED / MISSING |
| Tools covered in install script | List each: PRESENT / ABSENT |
If --check-only is set, stop here and print the report.
For each tool that needs to be installed, pin versions to match .pre-commit-config.yaml rev values where applicable. For tools not in pre-commit, use latest stable. Use this reference:
| Tool | Install method | Version source |
|------|---------------|----------------|
| pre-commit | pip install pre-commit | latest |
| helm | Official get-helm-3 script from raw.githubusercontent.com | latest stable |
| terraform | Binary from releases.hashicorp.com (.zip) | Pin to .pre-commit-config.yaml rev or latest |
| tflint | GitHub release binary (.zip) | Pin to .pre-commit-config.yaml rev |
| actionlint | GitHub release binary (.tar.gz) | Pin to .pre-commit-config.yaml rev |
| helm-docs | GitHub release binary (.tar.gz) | Pin to .pre-commit-config.yaml rev |
| gitleaks | GitHub release binary (.tar.gz) | Pin to .pre-commit-config.yaml rev |
| just | GitHub release binary (.tar.gz) | latest stable |
All download sources are compatible with the "Limited" network allowlist (github.com, releases.hashicorp.com, raw.githubusercontent.com, pypi.org).
scripts/install_pkgs.shCreate scripts/install_pkgs.sh with:
Remote guard — exit immediately if not in a remote session:
if [ "${CLAUDE_CODE_REMOTE:-}" != "true" ]; then
exit 0
fi
Idempotency guard per tool — use command -v <tool> before downloading:
if ! command -v helm >/dev/null 2>&1; then
# install helm
fi
Install to /usr/local/bin — writable without sudo in the base image (runs as root).
Temp directory cleanup — use a temp dir per download, remove it after:
tmp_dir=$(mktemp -d)
# ... download and extract ...
rm -rf "$tmp_dir"
unzip bootstrap — terraform and tflint ship as .zip; install unzip via apt if absent.
One install block per tool in this order: pre-commit, helm, terraform, tflint, actionlint, helm-docs, gitleaks, just.
Make the script executable: chmod +x scripts/install_pkgs.sh
.claude/settings.json.claude/settings.json (or start from {} if absent)SessionStart hook:"hooks": {
"SessionStart": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "bash \"$CLAUDE_PROJECT_DIR/scripts/install_pkgs.sh\""
}
]
}
]
}
permissions and other keys — do not overwrite them.Print a final summary:
Web session configuration complete
===================================
scripts/install_pkgs.sh [CREATED/UPDATED]
.claude/settings.json [CREATED/UPDATED]
Tools configured: helm, terraform, tflint, actionlint, gitleaks, just, pre-commit
Next steps:
1. Commit both files: git add scripts/install_pkgs.sh .claude/settings.json
2. Smoke-test locally: CLAUDE_CODE_REMOTE=true bash scripts/install_pkgs.sh
3. Run again to verify idempotency: CLAUDE_CODE_REMOTE=true bash scripts/install_pkgs.sh
4. Start a remote session on claude.ai/code and confirm tools are available
| Context | Command |
|---------|---------|
| Check only (CI audit) | /configure:web-session --check-only |
| Auto-fix with detected tools | /configure:web-session --fix |
| Override tool list | /configure:web-session --fix --tools helm,terraform,gitleaks |
| Smoke-test install script | CLAUDE_CODE_REMOTE=true bash scripts/install_pkgs.sh |
| Verify idempotency | CLAUDE_CODE_REMOTE=true bash scripts/install_pkgs.sh (run twice) |
testing
Verify accumulated bug claims at upstream HEAD and dedup against trackers before filing issues. Use when filing upstream reports from backlogs, audit docs, or git-history findings.
documentation
Gate outward-bound text (upstream issues, docs, PR bodies) through isolated haiku fresh-reader critique before publishing. Use when an artifact must survive a reader with zero project context.
tools
Suggest improvements to SKILL.md content, descriptions, or tool config from eval results. Use when raising pass rates, fixing triggering, or iterating on a skill after evaluation.
tools
deadbranch CLI for stale-branch cleanup — dry-run preview, TUI or non-interactive delete, protects main/develop/WIP. Use when asked to clean up branches, prune branches, or remove stale branches.