Skip to main content

dtach-bin

Precompiled dtach binary shipped as Python wheels for Linux and macOS. Install via pip / pipx and the dtach binary lands on PATH automatically — no compiler, no system package manager required.

This package exists so that Python projects can declare dtach as a runtime dependency the same way they declare any other Python package — and have it work across Linux x86_64, Linux aarch64, macOS Intel, and macOS Apple Silicon out of the box. The packaging pattern is the same one used by nodejs-bin (ships Node.js), cmake (ships CMake), and ninja (ships the Ninja build tool).

Install

pip install dtach-bin

— or in anything that wraps pip: pipx, uv, poetry, hatch, etc.

Use

After install, call dtach normally:

dtach -n /tmp/my-session.sock bash      # create a detached session
dtach -a /tmp/my-session.sock            # reattach to it

From Python, ask for the absolute path of the bundled binary:

import dtach_bin
print(dtach_bin.path())  # → '/.../venv/bin/dtach'

dtach_bin.path() returns the binary in the active venv first (so it works even with pipx and uv tool install layouts where the venv's bin/ isn't on the calling shell's PATH), falling back to a PATH lookup. Useful when a host process needs to invoke dtach via subprocess and can't rely on a particular shell PATH being set.

Supported platforms

Pre-built wheels are published for:

OS Architecture Wheel tag
Linux x86_64 manylinux2014_x86_64 (glibc ≥ 2.17)
Linux aarch64 manylinux2014_aarch64
macOS x86_64 macosx_11_0_x86_64 (macOS 11 Big Sur or later)
macOS arm64 macosx_11_0_arm64

If pip can't find a wheel for your platform (FreeBSD, Linux musl, exotic arches, etc.) it falls back to the sdist and builds from source — see Building from source. dtach is plain POSIX C using only libc and termios, so the build works anywhere a cc + make toolchain is available.

How it works

The wheel is not a Python C extension. It's a regular pure-Python package whose only Python content is the dtach_bin/__init__.py helper module, plus the compiled dtach binary placed in the wheel's scripts data location. At install time, pip lays the binary down at <prefix>/bin/dtach, which is on PATH for any tool that runs inside that environment.

Each platform wheel is built inside the standard pypa/manylinux2014 container (on Linux) or against MACOSX_DEPLOYMENT_TARGET=11.0 (on macOS), then re-tagged from cp310-cp310-<platform> to py3-none-<platform> — the binary doesn't depend on the Python version, so any Python 3 can install it.

The full CI pipeline lives in .github/workflows/build-wheels.yml: checkout → verify the vendored source SHA-256 → compile dtach inside the target environment → bundle into a wheel → upload to PyPI via Trusted Publisher OIDC (no API tokens stored anywhere).

Building from source

To build a wheel locally — useful when contributing or when no pre-built wheel exists for your platform:

git clone https://github.com/dev-aly3n/dtach-bin && cd dtach-bin

# Compile dtach into the package's binary slot
tar -xzf vendor/dtach-0.9.tar.gz -C /tmp
( cd /tmp/dtach-0.9 && ./configure && make )
cp /tmp/dtach-0.9/dtach src/dtach_bin/_bin/dtach
chmod +x src/dtach_bin/_bin/dtach

# Build the wheel
python3 -m build --wheel
ls dist/

The vendored source tarball is the upstream crigler/dtach v0.9 release; its SHA-256 is committed at vendor/dtach-0.9.tar.gz.sha256 and verified in CI before every build.

License

dtach itself is GPL-2.0-only (© 2004–2016 Ned T. Crigler). This package redistributes the unmodified dtach source plus a thin Python helper, and is therefore also licensed under GPL-2.0-only — see LICENSE for the full text.

You can depend on dtach-bin from a non-GPL project. Programs that invoke dtach as a separate process (via subprocess / exec) are not derivative works of dtach — see the FSF GPL FAQ on mere aggregation. This is the same arrangement that lets Debian and Homebrew ship dtach alongside non-GPL software. See THIRD-PARTY-NOTICES.md for upstream credits.

Reporting issues

For build problems specific to this package, open an issue at github.com/dev-aly3n/dtach-bin/issues.

For dtach bugs or behavior questions, see upstream: github.com/crigler/dtach.

Metadata

Release files for dtach-bin 0.9.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for dtach-bin 0.9.1
File Interpreter ABI Platform
dtach_bin-0.9.1-py3-none-manylinux2014_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
dtach_bin-0.9.1-py3-none-manylinux2014_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
dtach_bin-0.9.1-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details

Total release size: 60.4 kB

Release files / dtach_bin-0.9.1-py3-none-manylinux2014_x86_64.whl

Download URL dtach_bin-0.9.1-py3-none-manylinux2014_x86_64.whl
Size 20.2 kB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
9bf2ae5c38fcdfc078d16d9bafe7d79b3ab905738fb17c7a88027fc236efc4a3
BLAKE2b-256 checksum
How to use checksums
03ec85d4af2f79eb725ce1601c4bfb4ebf4e9f5de7f762ae012ca0d27e0eebe8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 17, 2026.

Transparency log

Release files / dtach_bin-0.9.1-py3-none-manylinux2014_aarch64.whl

Download URL dtach_bin-0.9.1-py3-none-manylinux2014_aarch64.whl
Size 20.7 kB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
cb8de6c34c67ee98898a446b275b17aab4d6f5d6f81daada66998a301e3df172
BLAKE2b-256 checksum
How to use checksums
b5e08ff4d4c67cc618dcc9001a6bb7da06ea352e6eb8b634254876fa1a0c83a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 17, 2026.

Transparency log

Release files / dtach_bin-0.9.1-py3-none-macosx_11_0_arm64.whl

Download URL dtach_bin-0.9.1-py3-none-macosx_11_0_arm64.whl
Size 19.5 kB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
68d84006b4d6287e97723961d4fc92086f30112280d1ac8ecde0190f37a33f65
BLAKE2b-256 checksum
How to use checksums
5011e36c03ea8d9b3d9d6814211d1e8812431a912c8fe41d07e7826fd5ea6f46
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.9.1 This release

3 release files

0.9.0

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page