Skip to content

Add Homebrew formula for dcode (deepagents-code) - #1

Merged
pokryfka merged 10 commits into
mainfrom
claude/homebrew-tap-dcode-2vl51o
Jul 10, 2026
Merged

pokryfka merged 10 commits into
mainfrom
claude/homebrew-tap-dcode-2vl51o

Conversation

@pokryfka

Copy link
Copy Markdown
Owner

Summary

  • Add Formula/dcode.rb, a Homebrew formula for dcode (LangChain's Deep Agents Code terminal coding agent, published to PyPI as deepagents-code)
  • Pin the full 132-package langchain/langgraph dependency closure as resource blocks so brew install dcode works offline and reproducibly
  • Every resource is a prebuilt wheel (per-platform for native-extension packages via on_macos/on_linux × on_arm/on_intel), so the only build dependency is python@3.12 — no Rust toolchain or C libraries needed
  • cryptography is pinned to 48.0.1 (not the latest 49.0.0, which dropped macOS Intel wheels) while still satisfying every version constraint in the closure
  • Add README.md with install instructions (brew tap pokryfka/dcode / brew install dcode) and formula maintenance notes

Test plan

  • ruby -c Formula/dcode.rb — syntax check passes
  • Fresh Python 3.12 venv installing all 132 pinned resources plus the main wheel with pip install --no-deps: pip check reports no broken requirements, dcode --version runs correctly
  • brew install --build-from-source ./Formula/dcode.rb && brew test dcode on a real Homebrew install (macOS/Linux)

Generated by Claude Code

claude added 10 commits July 9, 2026 01:57
dcode is LangChain's terminal AI coding agent, published to PyPI as
deepagents-code. Pin the full langchain/langgraph dependency closure as
resource blocks so brew install works offline and reproducibly.
The sdist requires compiling a WASM guest module against a
proprietary WASI SDK tarball fetched from GitHub at build time, which
isn't something a Homebrew resource build should attempt. Upstream
already ships a portable py3-none-any wheel with the WASM blob
embedded, invoked through the wasmtime dependency at runtime.
wasmtime's sdist build script downloads a prebuilt C-API tarball from
GitHub releases at build time rather than compiling from source, which
defeats the point of pinning a resource. Use the platform-specific
wheels PyPI already publishes instead.
Pillow (a transitive dependency via the media extra) requires jpeg and
zlib headers to build from source, plus freetype for font rendering
support; mirror the same set the aider-chat formula uses.
Drops the full-URL workaround now that the tap lives in a
homebrew-<name>-prefixed repo, enabling the short `brew tap` form.
Removes the rust/jpeg-turbo/freetype build dependencies by pinning
each resource to its prebuilt wheel (per-platform where a package
ships native extensions) instead of building from source, matching
how pip/uv normally install these packages. Pins cryptography to
48.0.1 since 49.0.0 dropped macOS Intel wheels. forbiddenfruit has
no published wheel but is pure Python, so it still builds instantly
with no extra dependency.

Validated end-to-end: a fresh Python 3.12 venv installing all 132
pinned resources plus the main wheel passes `pip check` clean and
`dcode --version` runs correctly.
Runs `brew install --build-from-source` + `brew test` on all four
platform combinations the formula's resource blocks target: macOS
arm64/Intel and Linux arm64/x64.
Avoids the Intel macOS "larger runner" tier for this check; the
arm64 macOS runner plus both Linux architectures still cover the
formula's non-macOS-Intel resource branches.
The workflow needs to live on main to be picked up properly (e.g.
workflow_dispatch only appears once a workflow exists on the default
branch), which isn't merged yet. Moving it to its own branch/PR.
@pokryfka
pokryfka merged commit 0a63df5 into main Jul 10, 2026
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.

2 participants