Skip to main content

Offline CLI to make your project Cendor-ready and Cendor-fluent for your AI assistant (init) and catch wiring mistakes (doctor). Run with `uvx cendor-init`.

Project description

cendor-init

One command to make your project Cendor-ready and Cendor-fluent for your AI assistant — plus a doctor that catches the wiring mistakes before they bite. Offline: no network, no API key.

uvx cendor-init            # detect + write assistant rules files (idempotent)
uvx cendor-init doctor     # validate the wiring; exit 1 on hard problems (CI-usable)

Optional developer tooling — dependency-free stdlib. It writes files and inspects your project; it makes no network call, and no Cendor library depends on it at runtime. (Node users: npx @cendor/init.) This is the Python twin of @cendor/init; both share the same behavior.

What init does

  1. Detects your project — Python (pyproject.toml / requirements) or Node (package.json), which provider SDKs you have, and which cendor-* / @cendor/* packages are installed.

  2. Writes the matching assistant rules file(s) so your assistant reads the correct Cendor call-shapes on every edit. Detected by default; --all for every one:

    • .github/copilot-instructions.md (GitHub Copilot)
    • .cursor/rules/cendor.mdc (Cursor)
    • AGENTS.md (the cross-tool default — always written)
    • a marked section in CLAUDE.md (Claude Code)
    • .windsurf/rules (Windsurf)

    Idempotent and safe: re-running updates a marker-delimited block in place — never duplicates, never clobbers your surrounding content. A dedicated file it didn't create is left alone unless you pass --force.

  3. Offers MCP setup (--mcp) — drops the connect config for the Cendor MCP server (remote mcp.cendor.ai or local uvx cendor-mcp / npx @cendor/mcp) where it's absent.

  4. Optional starter (--scaffold) — a minimal, correct starter for your language: a governed Agent loop (budget + guardrails + guard + audit) when cendor-sdk / @cendor/sdk is detected, otherwise an instrument() + budgeted-call example.

The rules content is a copy of section 3 of the docs source of truth, for-ai-assistants.

What doctor checks

Static checks only — it never mutates your project, and exits non-zero on hard problems so it works in CI:

  • Namespace — a stray cendor/__init__.py in your tree, or a bare import cendor (the namespace has no module body — import from cendor.<tool>).
  • Provider deps — a provider SDK your code imports but hasn't installed/declared (Cendor never pulls one for you; they are optional extras). Uses the installed environment when available.
  • instrument() once — warns if Cendor is imported but the client is never wrapped.
  • Money — flags coercing a price/cost to float (it should stay Decimal).
  • Versions — warns when an installed/pinned cendor-* version trails the latest release.
uvx cendor-init --help

Options

Flag Effect
--all write every assistant rules file, not just the detected ones
--assistant <list> comma-separated subset: copilot,cursor,agents,claude,windsurf
--mcp also drop MCP connect config where absent
--scaffold also write a correct starter — a governed Agent when the SDK is present, else instrument()+budget
--force overwrite an owned file (.cursor/rules/cendor.mdc) even if not ours
--dry-run show what would change without writing

Apache-2.0 · cendor.ai · For AI assistants · MCP

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

cendor_init-0.2.1.tar.gz (26.2 kB view details)

Uploaded Source

Built Distribution

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

cendor_init-0.2.1-py3-none-any.whl (27.8 kB view details)

Uploaded Python 3

File details

Details for the file cendor_init-0.2.1.tar.gz.

File metadata

  • Download URL: cendor_init-0.2.1.tar.gz
  • Upload date:
  • Size: 26.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for cendor_init-0.2.1.tar.gz
Algorithm Hash digest
SHA256 0ebf05bd48d6549b0ee099e18b354050cf5e45aa406ea37a30bd88e18b85b59e
MD5 d5b681885c71d6664952c657a594dfa1
BLAKE2b-256 46d456cf5b6e3a8d354eb8749ae8ccfad99d28bf46ac23618e10b506e9c7dc48

See more details on using hashes here.

Provenance

The following attestation bundles were made for cendor_init-0.2.1.tar.gz:

Publisher: release-init.yml on cendorhq/cendor-sdk

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

File details

Details for the file cendor_init-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: cendor_init-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 27.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for cendor_init-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3e153dc861f041bab8439354e31e9215922500604a06153cbae6e686c2e02c80
MD5 3a3864011aab3e5fe4993c50e46d58be
BLAKE2b-256 0ed9b49d6a2e7d8e3e7e8f08b4acfd59b4a76b4a4aec23fab38609e4eaec75d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for cendor_init-0.2.1-py3-none-any.whl:

Publisher: release-init.yml on cendorhq/cendor-sdk

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