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.8.0.tar.gz (91.0 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.8.0-py3-none-any.whl (67.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dogfu-0.8.0.tar.gz
  • Upload date:
  • Size: 91.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","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.8.0.tar.gz
Algorithm Hash digest
SHA256 31f1060fbd2477022d8bb1d4f2a4e97dae001061dc596efeda65853bd8535134
MD5 b3ee8fcb1899d9206e5c60159fd8d3a1
BLAKE2b-256 47de137781892d73332eafb2b1db9d44e301fa931d4fada4ae068d0cc2eff483

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dogfu-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 67.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","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.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f12702df95043cc657e5e2d4b44424ffc7a5cfac78539e9756687cf0c78a609c
MD5 7fd89b2f124bc971c418c1c5488c8038
BLAKE2b-256 889741eaed6e9a16d21802848da289a8436684076451c3a158e26333a32356cb

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