Skip to main content

Internal admin/marketing CLI — discovery, enrichment, outreach, and CRM over one interface.

Project description

dogfu

Internal admin CLI + SDK for Agent Berlin staff (admin_users). One interface over LinkedIn, X, Google, ChatGPT, SEO (the dogfu data API) and the Close CRM (via the admin CRM proxy). The sibling of backend/sdk-python — same transport posture (a single Bearer token against the Berlin backend, retry with backoff, a typed exception hierarchy, config-file session), scoped to the internal admin surface instead of a customer project.

Auth

dogfu authenticates with a single session token (a short-lived JWT, 24h), minted by exchanging a one-time OTP from the dogfu MCP's get_setup_instructions:

dogfu configure --otp <OTP> --title "<what this session is for>"

This POSTs {otp, title} to /dogfucli/exchange-otp and saves the returned token to ~/.dogfu/config.json. Subsequent commands resolve the token from DOGFU_TOKEN first, then that file. There is no refresh endpoint — on an auth failure, run get_setup_instructions again for a fresh OTP and re-configure.

dogfu is not project-scoped (no --domain); access is platform-wide for staff.

Endpoints

Everything goes through the Berlin backend (https://backend.agentberlin.ai by default; override with --base-url / DOGFU_BASE_URL):

Group Backend route
linkedin / x / google / chatgpt / seo /api/v1/admin/dogfu/*
crm /api/v1/admin/crm/* — allowlisted proxy to Close CRM

The CRM proxy holds the per-admin Close key server-side (configured from the admin Console), so dogfu never sees a Close credential — it forwards Close sub-paths under the dogfu session token.

Usage

dogfu --help                  # list groups
dogfu <group> --help          # list a group's commands
dogfu <group> <cmd> --help    # flags + the Output: data shape

dogfu seo domain-overview --target acme.com
dogfu crm lead create --name "Acme" --url https://acme.com

Output is canonical JSON by default (-f table for humans, -o FILE to write).

Programmatic use

from dogfu import Dogfu
dx = Dogfu()                                  # resolves DOGFU_TOKEN / config file
dx.seo.domain_overview(target="acme.com")     # -> DomainOverview
dx.crm.create_lead(name="Acme")

Develop

uv run python tests/smoke.py   # offline checks (normalizers, models, SDK wiring)

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

dogfu-0.5.0.tar.gz (71.5 kB view details)

Uploaded Source

Built Distribution

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

dogfu-0.5.0-py3-none-any.whl (58.1 kB view details)

Uploaded Python 3

File details

Details for the file dogfu-0.5.0.tar.gz.

File metadata

  • Download URL: dogfu-0.5.0.tar.gz
  • Upload date:
  • Size: 71.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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 dogfu-0.5.0.tar.gz
Algorithm Hash digest
SHA256 5f74519b5761d96464508ef70537bb3650e43dbc4fec5b1b2c8aca16adca0ace
MD5 6112ebc6a661ab0030d0aecaae33b5f6
BLAKE2b-256 e9dfbbc4b4c37b787c956aa1faf0fed2118d70dfc9e2f76ee1653406b59ad431

See more details on using hashes here.

File details

Details for the file dogfu-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: dogfu-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 58.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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 dogfu-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7f8ca1050dbc485a85fd024dc6387053290bb8ca9602e2281586eec14c1bb919
MD5 f3afcd7230a674b00b63ae5ff4f5ad1a
BLAKE2b-256 8b6ed8c2ded047b1b4c5d06a3a0c5591e773a4bef51cc2057fa0c675e60640e7

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