agent-scripts is a collection of small, local-first command-line utilities for AI-assisted development. Its primary tools, mvn-lite, npm-lite, and go-lite, reduce build and test output noise so agents retain more useful context. Supporting utilities cover browser automation, VS Code extension testing, and local repository discovery. Scripts use predictable command names, work well from PATH, and are designed to be easy for both developers and coding agents to discover and invoke.
Agent Scripts provides two Agent Skills:
repo-mapfor repository and local-tool discoverylite-toolsfor quieter, token-efficient Maven, npm/Node, and Go test workflows
mvn-lite— compact Maven output for builds, tests, and verification runsnpm-lite— compact output for supported npm test and verification workflows (measured output reductions up to 99.99%)go-lite— compactgo testoutput for coding agents
html-screenshot— render local HTML or URLs to PNGlaunch-browser— launch Chrome with DevTools enabledvscode-test— compact, approval-friendly VS Code extension testingrepo-map— local repository and agent-capability discovery
See choosing the right tool for measured output savings, recommended use cases, and experiment limitations.
Public, standalone utilities live under scripts/. Repository release tooling lives
separately under maintainers/ and is not part of the public utility interface.
The simplest installer keeps the complete repository under
~/.local/share/agent-scripts and symlinks the four core commands into
~/.local/bin:
curl -fsSL https://raw.githubusercontent.com/ejboy/agent-scripts/main/install.sh | bashThe installer uses Git when available and otherwise downloads a complete
archive snapshot. It does not edit shell startup files. Adding the repository's
full scripts/ directory to PATH remains the recommended setup for access to
all current and future scripts:
export PATH="$HOME/.local/share/agent-scripts/scripts:$PATH"For a manual Git installation, clone the repository and add its scripts/
directory to PATH:
mkdir -p "$HOME/.local/share"
git clone https://github.com/ejboy/agent-scripts.git ~/.local/share/agent-scripts
export PATH="$HOME/.local/share/agent-scripts/scripts:$PATH"Add the export line to your shell startup file to make the tools available in future sessions. You can then invoke the tools under scripts/ by name from any project.
Note
Skills and command installation are separate. See
skills/README.md for installing this repository's
repo-map and lite-tools skills. The repository installer installs
commands only and does not invoke the Skills CLI.
See the installation guide for shell setup, updates, uninstalling, and optional project-local pinning.
Introverted Maven for coding agents.
mvn-lite clean verify
mvn-lite -pl app -am test
mvn-lite --full dependency:treeSee the mvn-lite guide for options, output behavior,
failure logs, scope, and real-project evidence.
npm-lite reduces successful output for the two supported npm workflows and
direct Node test runs while keeping other invocations unchanged.
npm-lite run verify
npm-lite run test:unit
npm-lite node --test path/to/test.jsSee the npm-lite guide for supported commands, count
formats, failure diagnostics, logs, limitations, and experiment evidence.
go-lite captures routine go test output and reports a compact success line
while retaining complete failure logs. Other Go commands pass through normally.
go-lite test ./...
go-lite test ./internal/storage
go-lite --full test ./...See the go-lite guide for cache behavior, failure logs,
limitations, and sandbox expectations.
launch-browser is a separate macOS utility for starting Google Chrome with DevTools enabled at http://127.0.0.1:9222. It defaults to detached headless mode.
launch-browser
launch-browser --visible
launch-browser --foreground --isolated
launch-browser --stop
launch-browser --helpSuccessful detached launches record their service label and PID in ~/.browser-testing-profile/launch-state, alongside the existing persistent browser profile. --stop validates that the recorded service uses the xyz.pvrlabs.browser.* prefix, asks launchctl to stop it, and verifies that both the recorded PID and DevTools endpoint have stopped before removing state. If the recorded PID still owns port 9222 after service removal, the script terminates that process directly. It never kills an arbitrary process merely because it uses port 9222.
The temporary launch log is removed when Chrome exits normally; abnormal-exit logs remain available for diagnostics.
html-screenshot is a one-shot headless Chrome renderer for local HTML files, file:// URLs, and HTTP(S) URLs. It does not start or manage a reusable browser instance.
html-screenshot examples/page.html
html-screenshot --width 1440 --height 900 --wait 1000 -o /tmp/page.png examples/page.html
html-screenshot --scale 2 https://example.comIt discovers standard macOS Chrome and Chromium application locations before checking PATH. Use --chrome /path/to/chrome or CHROME_BIN=/path/to/chrome to select an executable explicitly. The default viewport is 1280×720 with a 500 ms virtual-time wait. Successful default output is one line; use --verbose to retain Chrome diagnostics. Failed renders always include Chrome diagnostics.
Release maintenance is documented in maintainers/README.md.
vscode-test provides fixed, reusable operations for macOS VS Code extension testing. Its stable command prefix avoids repeated approvals for changing inline JavaScript, while compact inspection and capped text output reduce transcript noise.
vscode-test launch --extension-development-path ./extension ./fixture
vscode-test launch --extension-development-path ./extension ./review.code-workspace
vscode-test inspect page
vscode-test inspect panel
vscode-test text panel --limit 2000
vscode-test controls page --filter "AI Badger"
vscode-test click --aria-label "Source Control"
vscode-test palette "AI Badger: Copy Workspace Changes for Review"
vscode-test wait-control --aria-label "AI Badger: Copy Changes for Review" --count 1
vscode-test activate
vscode-test screenshot /tmp/vscode.png
vscode-test stopThe launch workspace can be a directory or an existing .code-workspace file. The default DevTools port is 9223. Launch state, profiles, extension storage, and diagnostic logs are kept under ~/.agent-scripts/vscode-test. Inspection does not accept arbitrary JavaScript: inspect emits a one-line JSON summary, controls lists visible accessible controls and their enclosing UI context, and text normalizes whitespace and defaults to at most 4,000 characters. click requires one exact visible aria-label match; palette selects one exact command; wait-control polls until the exact requested count is rendered. These operations require Node.js 22 or newer. Use VSCODE_TEST_CODE_BIN or launch --code to select another VS Code executable. activate requires managed launch state and focuses its recorded process ID, so it distinguishes test and regular windows from the same application bundle. Codex sandbox setup is documented in the installation guide.
repo-map is a machine-local registry for discovering related repositories and useful commands across projects. Projects should document their required commands directly; coding agents can use repo-map to discover additional machine-local capabilities and related repositories.
repo-map
repo-map command html-screenshot
repo-map commands
repo-map commands --check
repo-map add ~/src/aibadger
repo-map show aibadger
repo-map get aibadgerSee choosing the right tool for efficient discovery guidance, registry details, and measured results.
This is an experimental, small utility collection. mvn-lite is not a complete Maven replacement, and this repository is not a build system, browser automation framework, AI agent, or task runner.
MIT licensed; see LICENSE.