Skip to main content

AdHelm

AdHelm 0.1.0 lets a marketer direct their own AI agent through a local, free, Apache-2.0 CLI to connect their own ad and analytics accounts, inventory them, report aggregate performance, audit them, and receive evidence-backed recommendations, with append-only local history and redacted exports. It makes no changes to any advertising or analytics account.

AdHelm is a command-line tool built to be driven by your AI agent, such as Claude Code or Codex. You describe the goal in conversation. The agent discovers the installed commands, calls them, and reports back in the form you prefer. You do not need to know shell syntax. Direct human use of the CLI is possible but secondary.

Everything runs on your machine. There is no hosted service, telemetry, account, license key, or paid tier. You register your own provider applications and keep your own credentials.

Status

0.1.0 is the first public release and it is read-only. Every command that would change an advertising or analytics account is listed by adhelm discover with status UNRELEASED and is refused at runtime; see What 0.1.0 does not do. The release is gated by the 0.1.0 release definition. It makes no COMPLETE, live-parity, write-support or compliance claim.

What you can do

For each provider below, in 0.1.0:

  • enroll your own application or key locally, check its status, refresh it where the provider supports refresh, remove it locally, and read the provider's revocation guidance;
  • read the account identity, a fixed inventory and a fixed daily aggregate report;
  • run audits that state, per dimension, what was and was not read, and receive recommendations that name their evidence and change nothing;
  • keep an append-only local history, verify it, reconcile out-of-band changes, and export deterministic CSV and JSON projections from a rebuildable SQLite index; and
  • ask for optional documents, spreadsheets or HTML reports when you want them. Compact conversational summaries are the default.

Two bundled skills teach your agent the diagnose, recommend and verify loop. adhelm guidance catalog lists them.

Install

AdHelm needs Python 3.12 or newer and runs on macOS, Linux and Windows. CPython 3.12 is the tested and supported version.

uv tool install adhelm

or

pipx install adhelm

Check the install:

adhelm version

To work on AdHelm itself, see CONTRIBUTING.md.

First run

Ask your agent to start with adhelm discover. It returns the installed commands, schemas, exit codes, release policy and provider labels, and it makes no network or credential-store call. You can run the same commands yourself:

adhelm init
adhelm doctor
adhelm discover
adhelm guidance catalog

init creates local defaults without credentials. doctor reports local readiness and does not contact any provider. Without --data-dir, local data lives in the platform data directory: ~/.local/share/adhelm on Linux, ~/Library/Application Support/adhelm on macOS and %LOCALAPPDATA%\adhelm on Windows.

Then follow the setup guide for each provider you use. A guide covers which developer app or key to create, the scopes it needs, the redirect configuration, access-tier limits that matter for read-only use, the enrollment command, and how to revoke. Secrets are entered through a local interactive handoff and stored in your operating system's credential store. They are never accepted in command arguments or JSON.

Providers

Each provider carries exactly one release label. LIVE_PILOTED means the provider is fixture-verified and was read-piloted on a live account, with a redacted pilot record committed under docs/pilots/. EXPERIMENTAL means it is fixture-verified only and has no live evidence. The label states evidence and never a capability. adhelm discover, adhelm doctor and every output that names a provider show the same label.

Provider Label Read in 0.1.0 Setup
Google Ads EXPERIMENTAL Account identity, campaign hierarchy, daily aggregate report, audit, recommendations setup
Meta Ads EXPERIMENTAL Account identity, campaign hierarchy, daily aggregate report, audit, recommendations setup
LinkedIn Ads EXPERIMENTAL Account identity, campaign hierarchy, daily aggregate report, audit, recommendations setup
TikTok Ads EXPERIMENTAL Account identity, campaign hierarchy, daily aggregate report, audit, recommendations setup
Reddit Ads EXPERIMENTAL Account identity, campaign hierarchy, daily aggregate report, audit, recommendations setup
OpenAI Ads EXPERIMENTAL Account identity, campaign hierarchy, daily aggregate report, audit, recommendations setup
GA4 EXPERIMENTAL Data API aggregate reporting, read-only Admin inventory, audit setup
GTM EXPERIMENTAL Container inventory, dependency graph, read-only audit setup

doctor expects GA4. GTM is optional, and a provider you have not configured does not block work on the others. Provider quotas, approvals and access tiers belong to the provider. You must obtain API access yourself, and a provider can change or withdraw its API.

What 0.1.0 does not do

  • No remote writes. Pausing, creating, activating, maintaining, GA4 Admin edits and GTM staging, versioning and publishing are all refused with WRITES_NOT_RELEASED (exit code 3) before any credential-store access, ledger APPLY_STARTED entry or network request. No configuration value, environment variable, flag or edited file enables them. Offline compile, plan and preview commands remain available and say that execution is unreleased. When your agent recommends a change, you make it by hand in the provider's own interface.
  • No CRM attribution. Salesforce and HubSpot are not part of 0.1.0.
  • EXPERIMENTAL providers have no live evidence. Their reports and audits are tested against fixtures, and their totals have not been compared with the provider's own interface.
  • Some reads are bounded, not exhaustive, and some are narrower than the provider's API. Where a provider documents no pagination, such as LinkedIn analytics, audits say so instead of presenting the result as complete. The capability matrix lists each provider's limits.
  • Money is read in a few currencies only. Google Ads, LinkedIn Ads, Reddit Ads and OpenAI Ads project money exactly only for USD accounts. Meta Ads accepts AUD, CAD, CHF, DKK, EUR, GBP, HKD, JPY, MXN, NOK, NZD, SEK, SGD and USD. TikTok Ads accepts AUD, CAD, EUR, GBP, JPY and USD. A read that carries money for an account in any other currency is refused with UNSUPPORTED_CURRENCY rather than converted approximately, so check your account currency before you register an application.

Privacy and safety

  • The default runtime has no vendor proxy, hosted database, telemetry, crash upload, automatic updater, or remote license heartbeat.
  • Interactive secrets live in the operating system credential store. Environment variables are for explicitly configured CI use only.
  • Logs, plans, evidence and exports are local, redacted, deterministic and user-initiated. Raw provider responses are not persisted by default.
  • Output your agent reads follows the same redaction rules, but your agent may forward what it reads to its model. Share only what you are comfortable sending there.
  • Each configured provider still receives the requests you make of it. Local execution reduces vendor custody. It does not make you compliant with HIPAA, GLBA or any other regime, and it does not replace legal, provider-policy or security review.

Documentation

Contributing and security

Contributions are welcome under the Developer Certificate of Origin; read CONTRIBUTING.md. Report a vulnerability privately as SECURITY.md describes, never in a public issue. Participation is governed by the Code of Conduct. Changes are recorded in the changelog.

License

AdHelm is licensed under the Apache License, Version 2.0; see the LICENSE file. The license does not grant rights to the AdHelm name or marks, and a fork that redistributes the software must not imply endorsement by this project.

Metadata

Release files for adhelm 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for adhelm 0.1.0
File Size Uploaded
adhelm-0.1.0.tar.gz 1.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for adhelm 0.1.0
File Interpreter ABI Platform
adhelm-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 2.9 MB

Release files / adhelm-0.1.0.tar.gz

Download URL adhelm-0.1.0.tar.gz
Size 1.4 MB
Tags Source
SHA-256 checksum
How to use checksums
975859a609b8d0ada0437d3fc69de94f2fdded39bd66f54b62f7c230a3e786ca
BLAKE2b-256 checksum
How to use checksums
e8563ac0d53dfeb81780e65e6fc3a52f3acd338d2037cd3ff8ddeaa0ffc52426
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / adhelm-0.1.0-py3-none-any.whl

Download URL adhelm-0.1.0-py3-none-any.whl
Size 1.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
3287d072da7cafd721a7b001dff734b4bb93c536af52eb6bae86b31f59348db7
BLAKE2b-256 checksum
How to use checksums
52bb07c5899ae2ec78dc6cd70d400878c66f5d3b11974c735fcf0d319e21da3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page