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)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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 logRelease 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