Skip to main content

Command-line interface for Arga authentication, MCP installation, and browser validation

Project description

Arga CLI

arga is the command-line interface for authenticating with Arga, installing MCP configuration into supported coding agents, and starting validation runs against deployed apps or pull requests.

What It Does

  • Authenticates your machine with Arga using the device login flow.
  • Stores a device-scoped API key locally so each terminal/device can be revoked independently.
  • Shows the currently authenticated user and workspace.
  • Installs MCP configuration into supported local agents.
  • Starts URL validation runs from the terminal.
  • Starts pull request validation runs from the terminal.
  • Wraps git commit and git push with Arga skip-validation helpers.
  • Starts and inspects Arga app scans.

Installation

Once published to PyPI:

uv tool install arga-cli

You can also install it with pipx or pip:

pipx install arga-cli
pip install arga-cli

After installation, the executable is:

arga --help

Quick Start

Authenticate:

arga login
arga whoami

Remove the saved device credential:

arga logout

Install MCP configuration for detected agents:

arga mcp install

Start a browser validation run:

arga test url --url https://demo-app.com --prompt "test the login flow"

Start a pull request validation run:

arga validate pr --repo arga-labs/validation-server --pr 182

Create a commit that skips Arga validation:

arga commit -m "docs: update examples" --skip
arga push --skip

Inspect or update automatic validation settings:

arga validate install arga-labs/validation-server
arga validate config arga-labs/validation-server
arga validate config set arga-labs/validation-server --trigger branch --branch main --comments on

Start an app scan and inspect it later:

arga scan https://demo-app.com --budget 200
arga scan status <run_id>
arga scan report <run_id>

List and inspect recent validation runs:

arga runs list --repo arga-labs/validation-server --limit 20
arga runs status <run_id>
arga runs logs <run_id>
arga runs cancel <run_id>

arga validate url is also available and currently behaves the same as arga test url:

arga validate url --url https://demo-app.com --prompt "test checkout"

Command Reference

Authentication

arga login
arga whoami
arga logout
  • arga login opens the browser to complete Arga's device authorization flow.
  • arga whoami verifies the saved API key and prints the GitHub login plus workspace.
  • arga logout removes the local credential and attempts to revoke the current device on the server.

Validation

arga test url --url https://demo-app.com --prompt "test login flow"
arga validate url --url https://demo-app.com --prompt "test checkout"
arga validate pr --repo arga-labs/validation-server --pr 182
arga validate install arga-labs/validation-server
arga validate config arga-labs/validation-server
arga validate config set arga-labs/validation-server --trigger branch --branch main --comments on
  • arga test url starts a one-off validation against a deployed URL.
  • arga validate url is an equivalent URL-validation entry point under the validate namespace.
  • arga validate pr starts GitHub-backed PR validation for a repository and pull request number.
  • arga validate install <repo> installs the GitHub webhook for automatic validation on a repository.
  • arga validate config <repo> shows the current automatic validation settings, including install state, trigger mode, selected branch, and PR comment behavior.
  • arga validate config set <repo> updates the automatic validation settings. Any omitted options keep their current value.

For URL validation, you can optionally provide credentials:

arga test url \
  --url https://demo-app.com \
  --prompt "log in and create an order" \
  --email test@company.com \
  --password supersecret

Both --email and --password must be supplied together.

App Scans

arga scan https://demo-app.com --budget 200
arga scan status <run_id>
arga scan report <run_id>
  • arga scan <url> starts an app scan, waits for the generated scan plan to be ready, and auto-approves it so execution can begin.
  • --budget controls the red-team action budget and defaults to 200.
  • arga scan status <run_id> prints the current run status and anomaly count.
  • arga scan report <run_id> prints the final JSON report once the scan has completed.

Validation Runs

arga runs list --repo arga-labs/validation-server --status running --limit 20
arga runs status <run_id>
arga runs logs <run_id>
arga runs cancel <run_id>
  • arga runs list shows recent PR and branch validation runs in table form.
  • --repo narrows the list to a single repository.
  • --status accepts completed, failed, or running. The running filter includes non-terminal states such as queued.
  • arga runs status <run_id> prints a detailed summary for a specific run.
  • arga runs logs <run_id> prints worker logs plus recent runtime logs for a run you own.
  • When you omit <run_id>, arga runs logs falls back to ./.arga-session.json when present, which makes wizard-created twin sessions easy to inspect from the same directory.
  • Add --json to arga runs logs for a machine-readable response.
  • Add --errors-only to keep only failed worker logs plus warning/error runtime entries.
  • arga runs cancel <run_id> cancels the run through the validation API.

Git Wrappers

arga commit -m "docs: update examples" --skip
arga push --skip
  • arga commit delegates to git commit.
  • arga commit --skip appends a final [skip arga] paragraph to the commit message so Arga skips validation for that head commit.
  • arga push delegates to git push.
  • arga push --skip verifies the current HEAD commit already contains [skip arga] before pushing. This is safest when the commit was created with arga commit --skip.

Supported MCP Targets

arga mcp install writes or updates MCP configuration for supported agents when they are detected locally:

  • ~/.cursor/mcp.json
  • ~/.claude/mcp.json
  • ~/.config/codex/mcp.json

The installed server is named arga-context and points to:

<api-url>/mcp

using an Authorization: Bearer <api_key> header generated from your saved CLI login.

MCP Installation

Install or update MCP config after you have logged in:

arga login
arga mcp install

The installer:

  • Detects supported local agent config directories.
  • Preserves existing mcpServers entries.
  • Merges in the generated arga-context server definition.
  • Returns a non-zero exit code if no supported targets are detected or if any target cannot be updated.

If you need to add the server manually, the generated config looks like:

{
  "mcpServers": {
    "arga-context": {
      "url": "https://api.argalabs.com/mcp",
      "headers": {
        "Authorization": "Bearer <your-api-key>"
      }
    }
  }
}

Using A Custom API URL

By default, the CLI targets https://api.argalabs.com.

To point it at another environment, pass --api-url or set ARGA_API_URL:

arga login --api-url http://localhost:8000
arga mcp install --api-url http://localhost:8000
arga test url --api-url http://localhost:8000 --url https://demo-app.com --prompt "test checkout"
arga validate url --api-url http://localhost:8000 --url https://demo-app.com --prompt "test checkout"
arga validate pr --api-url http://localhost:8000 --repo arga-labs/validation-server --pr 182
export ARGA_API_URL=http://localhost:8000
arga login

Local Development

uv sync
uv run pytest
uv run arga --help

To install the current checkout as a shell command:

uv tool install -e .

Releasing

This repo includes a GitHub Actions workflow at .github/workflows/publish.yml for trusted publishing.

One-time setup:

  • Create GitHub Environments named testpypi and pypi in the repository settings.
  • In TestPyPI, add a Trusted Publisher for this GitHub repository and workflow:
    • owner: ArgaLabs
    • repository: arga-cli
    • workflow: publish.yml
    • environment: testpypi
  • In PyPI, add a Trusted Publisher with the same repository and workflow, but environment pypi.

Publishing flow:

  • Manual TestPyPI publish: run the Publish Package workflow with repository=testpypi.
  • Automatic PyPI publish: push a tag like v0.1.0.
  • The workflow verifies that the tag version matches project.version in pyproject.toml, builds the package with uv build, and publishes with uv publish.

Typical release steps:

uv run pytest
git tag v0.1.0
git push origin v0.1.0

Config Storage

The CLI stores its local auth state in:

~/.config/arga/config.json

That file contains the saved API key plus device metadata returned during arga login.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

arga_cli-0.1.4.tar.gz (23.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

arga_cli-0.1.4-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file arga_cli-0.1.4.tar.gz.

File metadata

  • Download URL: arga_cli-0.1.4.tar.gz
  • Upload date:
  • Size: 23.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for arga_cli-0.1.4.tar.gz
Algorithm Hash digest
SHA256 83d73121a38c668d2015ba2749acd0f4a1b8e3b7d7ee2055eb0640ad8a0387a3
MD5 fb22db4c526ef90d371644fd2268c297
BLAKE2b-256 449719fc083a0c642e23e6f55b9e46344531d4d6fc3a69abbdae7788c30f3396

See more details on using hashes here.

File details

Details for the file arga_cli-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: arga_cli-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 16.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for arga_cli-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e7734e56db83fafbd1874e3b11c22f9dfdbc0596d3e0068593d384fd70a07535
MD5 4049a6cc20bc24ca8a8be441b7a96069
BLAKE2b-256 e217116b884d9037bf9bc41a8984b9571949c38f37320de118304687a754b80e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page