Skip to content

feat(craft): add Craft Connector plugin - #179

Open
dbrussig wants to merge 1 commit into
zai-org:mainfrom
dbrussig:feat/craft-connector
Open

dbrussig wants to merge 1 commit into
zai-org:mainfrom
dbrussig:feat/craft-connector

Conversation

@dbrussig

@dbrussig dbrussig commented Nov 7, 2026

Copy link
Copy Markdown

Plugin type

Standard plugin — affected manifest names: craft.

What user problem does this solve?

ZCode users on macOS who take notes in Craft (craft.do) currently have to
switch apps to store findings, search their notes, or maintain their daily
note. This plugin gives the agent direct, credentialed access to the user's
own Craft space via the official Craft Connect API: create notes
(/craft-notiz), full-text search & read (/craft-suche), and read/append
daily notes (/craft-daily), plus craftdocs:// deep links for everything
it reports.

Visible behavior & how it was tested

  • /craft-daily reads today's daily note (GET /blocks?date=today, markdown)
    and appends entries via typed blocks (POST /blocks, position date=today).
  • /craft-suche runs GET /documents/search, reads the top hits individually
    and reports with deep links and verbatim quotes.
  • /craft-notiz creates documents (title-only create + block append) and
    reads back to verify the result.
  • Tested live against a real Craft space on 2026-11-07 with two full
    acceptance runs (4/4 checks each), including a verified workaround for
    POST /documents silently ignoring the content field (create title-only,
    append blocks via pageId) – documented in the skill so other users avoid
    the same trap.

Version & marketplace registration

Plugin version 0.1.4; registered in the root marketplace.json under
productivity with source: ./external_plugins/craft. No other plugins are
affected; the entry is appended after the last existing entry, keeping the
diff additive.

Dependencies, network requests, permissions, side effects

  • One skill + three slash commands; no MCP server, no hooks, no background
    processes, no build step
    (plain JSON/Markdown, no dist/ needed).
  • Network: only the user's own Craft Connect endpoint
    (https://connect.craft.do/links/<id>/api/v1) with the user's own Bearer
    key, stored interactively (read -s) in ~/.config/craft-connector/craft.env.
    No telemetry, no other endpoints, no automatic cloud calls.
  • Writes are limited to the user's task (append blocks, create documents);
    deletions only on explicit per-object user requests (enforced as a rule in
    the skill).
  • Requires the user to create their own API connection in Craft's Connect
    area first (documented in both READMEs).

Licensing / provenance

All code and documentation is original work by the plugin author, MIT licensed
(LICENSE included). No third-party code, assets, or prebuilt binaries.
Craft (craft.do) and the Connect API are third-party services accessed with
the user's own account and credentials; the plugin is not affiliated with or
endorsed by Craft.

Checks

  • python3 scripts/validate.py → OK: 53 plugin(s) validated
  • zip-build check for craft using the repo's own build_zip() (all 8
    files present in the artifact, 10,922 bytes)
  • git diff --check clean
  • main behavior exercised in ZCode (live acceptance runs, see above)
  • full build_dist.py: fails in a pristine source clone on the UI
    plugins
    (excalidraw & co. need pnpm build first) – independent of this
    PR; their release pipeline builds the dist/ outputs.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant