Skip to main content

Intercept Developer Posture Agent - collects developer environment data

Project description

intercept-agent

Developer endpoint agent for the Intercept supply chain security platform. Collects metadata about the developer environment (installed tools, IDEs, AI assistants, MCP servers, security posture) and reports it to your Intercept tenant.

Cross-platform: macOS, Linux, Windows. Python 3.12+.

The agent collects metadata only -- names, versions, boolean statuses. It never reads file contents of SSH private keys, credentials, or tokens.

Install

You will receive an enrollment token (starts with hse_) from your Intercept admin. Pick whichever install command works on your machine:

Recommended: pipx (works on every platform, no PATH gymnastics)

pipx is the standard tool for installing Python CLIs. It puts the agent in its own isolated environment and automatically wires up the intercept-agent command on PATH for you.

pipx install intercept-agent
intercept-agent setup --token hse_xxxxxxxxxxxx

If you don't have pipx:

  • macOS: brew install pipx && pipx ensurepath
  • Linux: python3 -m pip install --user pipx && python3 -m pipx ensurepath
  • Windows: py -m pip install --user pipx && py -m pipx ensurepath

Open a new terminal after ensurepath so the updated PATH takes effect.

One-shot: uvx (if you already use uv)

If you have uv installed, you can skip the install step entirely -- uvx resolves and runs the command in a disposable environment:

uvx intercept-agent setup --token hse_xxxxxxxxxxxx

This is the cleanest path if you already use uv for Python projects.

Fallback: pip + python -m posture_agent

If neither pipx nor uv is an option, use pip and invoke the agent as a module. This works regardless of whether the intercept-agent console script ends up on PATH (the common Windows pain point):

pip install intercept-agent
python -m posture_agent setup --token hse_xxxxxxxxxxxx

On macOS / Linux you may need pip3 and python3 instead of pip and python. On Windows, py -m pip install intercept-agent followed by py -m posture_agent setup --token ... works without needing python on PATH at all.

What setup does

intercept-agent setup --token <hse_...> is a one-shot bootstrap:

  1. Calls Intercept's enrollment endpoint to exchange the one-time enrollment token for a per-machine API key (hsk_...).
  2. Writes ~/.config/intercept/agent.yaml with the API key and the correct API URL for your tenant.
  3. Installs the per-platform scheduler so the agent runs every hour:
    • macOS: launchd plist at ~/Library/LaunchAgents/com.hijacksecurity.intercept-agent.plist
    • Linux: systemd user service unit
    • Windows: Task Scheduler entry
  4. Runs the first collection immediately so the machine appears in the Intercept UI within a minute.

After setup completes you don't need to do anything else -- the agent reports to your tenant automatically on the configured interval.

Other commands

intercept-agent status         # Show install / scheduler / config status
intercept-agent collect        # Dry-run: print the next report to stdout
intercept-agent collect --report  # Force a report send right now
intercept-agent update         # Upgrade the agent to the latest version on PyPI
intercept-agent uninstall      # Stop the scheduler and remove the plist / service / task
intercept-agent uninstall --purge   # Also remove ~/.config/intercept

All of these work the same way under the python -m posture_agent fallback. For example: python -m posture_agent status.

Re-enrolling on an already-configured machine

If you need to switch tokens, move to a new tenant, or just reset local state, pass --force to setup:

intercept-agent setup --token hse_xxxxxxxxxxxx --force

--force wipes the existing configuration (and any installed scheduler) before re-enrolling. It replaces the older two-command dance (uninstall --purge followed by setup), which was fragile on Windows when the intercept-agent console script wasn't on PATH.

What the agent collects

Per-machine metadata reported to Intercept (no file contents, no secrets):

  • Machine: hostname, username, OS, CPU, memory.
  • IDEs: VS Code, Cursor, JetBrains family, Xcode, vim, Sublime, Windsurf, Zed, etc. -- name + version only.
  • IDE extensions: id + version for installed VS Code / JetBrains plugins.
  • AI tools: Claude Code, Cursor, Copilot, ChatGPT Desktop, Codeium, etc. -- as CLIs, extensions, and desktop apps.
  • Dev tools: Git, Docker, languages (Node, Python, Go, Rust...), build tools, cloud CLIs.
  • Package managers: Homebrew, npm, pip, cargo, etc.
  • Security posture: git signing config, SSH keys (algorithm + filename only -- never key contents), SSH agent type, disk encryption state (FileVault / BitLocker / LUKS), OS firewall state, app gatekeeper state, git credential helper.
  • MCP servers: which MCP servers each AI tool has configured, plus risk indicators (env-var-named credentials, etc.).

See the Intercept docs for the full report schema.

Uninstall

intercept-agent uninstall --purge    # remove scheduler + config + logs
pipx uninstall intercept-agent       # if installed via pipx
pip uninstall intercept-agent        # if installed via pip

Privacy & security

  • Endpoint metadata only. No file contents of keys, credentials, or source code is ever read.
  • All data is sent over HTTPS to your tenant's Intercept gateway.
  • Authentication uses a per-machine API key (hsk_...) issued during enrollment. The original hse_... enrollment token is one-time use.
  • You can revoke a machine's access from the Intercept UI at any time.

Support

If intercept-agent isn't recognized after pipx install, run a fresh terminal (so PATH refreshes). If you're still stuck, the python -m posture_agent setup --token ... fallback works without any PATH configuration -- use that and tell us about the platform you're on so we can fix the install story for the next person.

Source: hijacksecurity/Intercept

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

intercept_agent-0.4.21.tar.gz (120.2 kB view details)

Uploaded Source

Built Distribution

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

intercept_agent-0.4.21-py3-none-any.whl (69.7 kB view details)

Uploaded Python 3

File details

Details for the file intercept_agent-0.4.21.tar.gz.

File metadata

  • Download URL: intercept_agent-0.4.21.tar.gz
  • Upload date:
  • Size: 120.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for intercept_agent-0.4.21.tar.gz
Algorithm Hash digest
SHA256 d981e3cdc5aa04e3a54149264ccf8495d4eca54df0210ab620ccf0ba6cc0c9e5
MD5 39e1a97c7f658549bcae6b2fb0203394
BLAKE2b-256 8dc4a74b114d8f802a0de56d6c16d2d60b0f0055e0f1bf9cfea7ac06a7e37fb6

See more details on using hashes here.

Provenance

The following attestation bundles were made for intercept_agent-0.4.21.tar.gz:

Publisher: publish-posture-agent-prod.yml on hijacksecurity/Intercept

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file intercept_agent-0.4.21-py3-none-any.whl.

File metadata

File hashes

Hashes for intercept_agent-0.4.21-py3-none-any.whl
Algorithm Hash digest
SHA256 3fa292b5bc6b0b1cd2dbafa411a16e46b8f9a5d9a7f38fb8d45a4dbdc09835bc
MD5 b53caf38768a8f6e4919c88f3a053b91
BLAKE2b-256 202a2e4f26f30f0518cd22459f9b9352f1dcf298c42538d086bbd051eea5969d

See more details on using hashes here.

Provenance

The following attestation bundles were made for intercept_agent-0.4.21-py3-none-any.whl:

Publisher: publish-posture-agent-prod.yml on hijacksecurity/Intercept

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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