postie
Send files and text to your own devices (phone, tablet, laptop, browser) from any terminal, or from your AI coding agent. It's end-to-end encrypted, and goes over your Wi-Fi when the device is nearby.
Install
-
Install uv (it puts
postieon your PATH for you). Search "install uv" and paste the command astral.sh shows:Platform Command Windows (PowerShell) winget install astral-sh.uvMac / Linux curl -LsSf https://astral.sh/uv/install.sh | sh -
In a new terminal:
uv tool install postie-cli uv tool update-shell
-
In another new terminal,
postie login. Update later withuv tool upgrade postie-cli.
pip install postie-cli works too, but pip usually puts postie in a folder that isn't on your PATH (it prints a warning naming that folder). Add it to PATH yourself (on Windows: Start → "Edit environment variables for your account" → Path → New), or use uv.
Use
postie login # sign in with Google (or: postie login CODE)
postie photo.png m6 # device = any part of its name
postie photo.png m6,mac # several at once, or: all
postie ./dist m6 # a folder is zipped
postie "hello" m6 # text
cmd | postie m6 # stdin
postie get # receive
postie ls # devices
The verb is optional, and the device you used last is the default. --json gives plain output for scripts.
For AI agents
postie mcp is an MCP server, so your coding agent can send to your devices. Add it once:
claude mcp add -s user postie -- postie mcp # Claude Code
codex mcp add postie -- postie mcp # Codex
Cursor (the app and its agent CLI) reads ~/.cursor/mcp.json. Add this to it:
{ "mcpServers": { "postie": { "command": "postie", "args": ["mcp"] } } }
Any other MCP agent: the command is postie, the argument is mcp. If an app can't find postie, give it the full path (which postie, or where postie on Windows).
Then ask your agent to "send the APK to my phone".
Get the Postie apps for Android, iPhone, Mac, Windows, Linux and the browser at postie.xlonlabs.com.
Metadata
Release files for postie-cli 3.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| postie_cli-3.5.1-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| postie_cli-3.5.1-py3-none-manylinux_2_28_x86_64.whl | Python 3 | none | Linux glibc 2.28+ x86-64 | Details |
| postie_cli-3.5.1-py3-none-manylinux_2_28_aarch64.whl | Python 3 | none | Linux glibc 2.28+ ARM64 | Details |
| postie_cli-3.5.1-py3-none-macosx_11_0_x86_64.whl | Python 3 | none | macOS 11.0+ x86-64 | Details |
| postie_cli-3.5.1-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
Total release size: 28.4 MB
Release files / postie_cli-3.5.1-py3-none-win_amd64.whl
| Download URL | postie_cli-3.5.1-py3-none-win_amd64.whl |
|---|---|
| Size | 5.5 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
e3c56a70683bfe787ece564c990e2b06a82bb2fbd204d55c1575ead3ff2425de
|
|
BLAKE2b-256 checksum How to use checksums |
4ae7ae4d5b6c3ee3c30a1bfbafd392af04c86c08c077b878d03413ce9ea29115
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / postie_cli-3.5.1-py3-none-manylinux_2_28_x86_64.whl
| Download URL | postie_cli-3.5.1-py3-none-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 5.9 MB |
| Tags | Linux glibc 2.28+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
87f45dfd1816bc00a9fb4104049d56947a87d618687a60b4deaa8c22bb2c5e93
|
|
BLAKE2b-256 checksum How to use checksums |
bc32af674323208e4869d7dc112b54d6203613e1aa3eb383ad874b551706ab09
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / postie_cli-3.5.1-py3-none-manylinux_2_28_aarch64.whl
| Download URL | postie_cli-3.5.1-py3-none-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 6.0 MB |
| Tags | Linux glibc 2.28+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
703f173edcd94bef4c43bc190c06d7b90c3ebfbea632db534698a64be804c435
|
|
BLAKE2b-256 checksum How to use checksums |
e7f3e271795f2cddc2b744456fcacfdb5b254dd253777a4d1ff2691b2bcfb80b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / postie_cli-3.5.1-py3-none-macosx_11_0_x86_64.whl
| Download URL | postie_cli-3.5.1-py3-none-macosx_11_0_x86_64.whl |
|---|---|
| Size | 5.4 MB |
| Tags | Python 3 macOS 11.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
a594464ccdd5690f6bedc3487597ee116eef229d9b4a4c7db37b6cb1d7761788
|
|
BLAKE2b-256 checksum How to use checksums |
a6e755be55ae5d6342e6fdb52097a77ca594dee8ccf41215d4aad8e3a8ad287f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / postie_cli-3.5.1-py3-none-macosx_11_0_arm64.whl
| Download URL | postie_cli-3.5.1-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 5.5 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a42acb44bb1434c348da35870f32ad0b9086f298c4480bd8f67a26c01b09c8d8
|
|
BLAKE2b-256 checksum How to use checksums |
95b97f82f8fad6f4d235bf389d261c2532f98695e17f2a5a5602cc9687778671
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|