User-side sender for SignalPipe v4 — streams pre-drafted, pre-approved missions and posts them with your own Reddit/X credentials. The math runs on SignalPipe; the sending runs on you.
Project description
signalpipe-daemon
The user-side sender for SignalPipe v4.
SignalPipe is the intelligence layer for outreach. We never see your Reddit credentials, never see your LLM keys, never store your prospects. The math runs on us. The sending runs on you.
This daemon holds a Server-Sent-Events stream open to your SignalPipe brain, receives missions the brain has already scored, drafted, and approved, posts them with your own platform credentials, and acknowledges the result. It never sees your LLM keys, never scores or drafts anything itself, and stores no prospects. It only sends.
Install
pip install "signalpipe-daemon[all]" # both Reddit + X senders
pip install "signalpipe-daemon[reddit]" # Reddit only
pip install "signalpipe-daemon[twitter]" # X / Twitter only
pip install signalpipe-daemon # base; pulls only `requests`
The platform SDKs (praw, tweepy) are optional extras and are imported only
when a mission for that channel actually arrives — install just the ones you use.
Configure
Copy .env.example to .env and fill it in, or export the variables directly.
A real environment variable always wins over a .env entry.
| Variable | Purpose |
|---|---|
SIGNALPIPE_KEY |
Required. Your operator key from the dashboard. |
SIGNALPIPE_API_URL |
Brain URL. Defaults to https://api.signalpipe.io. |
REDDIT_CLIENT_ID / REDDIT_CLIENT_SECRET / REDDIT_USERNAME / REDDIT_PASSWORD |
A Reddit script app on your sending account. Enables reddit_comment and reddit_dm. |
X_API_KEY / X_API_SECRET / X_ACCESS_TOKEN / X_ACCESS_SECRET |
X / Twitter app creds. Enables twitter_reply. |
MAX_TWITTER_ACTIONS_PER_DAY |
Default 10. |
MAX_REDDIT_DMS_PER_DAY |
Default 5. |
MAX_REDDIT_COMMENTS_PER_DAY |
Default 15. |
Your platform credentials stay on your machine. They are used only to talk to Reddit / X directly and are never sent to SignalPipe.
Run
signalpipe-daemon status # validate the key, print queue depth, exit
signalpipe-daemon run # stream missions and send them
signalpipe-daemon run --dry-run # log intended sends without posting or acking
run holds the stream open and reconnects with exponential backoff on any
network drop. A rejected key (401) is fatal and exits non-zero; everything else
is treated as transient. Stop with Ctrl-C.
How a mission flows
- The brain scores a signal, drafts a reply, and (once approved) marks the mission ready. It streams the mission to this daemon over SSE.
- The daemon posts the pre-written draft on the mission's channel
(
twitter_reply,reddit_comment, orreddit_dm) using your credentials. Missions on themanualchannel are skipped — you send those yourself. - The daemon acks the outcome. A failure tagged
bannedorrate_limitedtells the brain to pause your stream for a cool-down.
Daily caps pace your sending; when a cap is hit the mission is skipped, not failed, so it remains queued and retries after the next local-midnight reset.
Delivery: missions are delivered at-least-once. Within a running process the daemon will never post the same mission twice, even across reconnects — so a dropped connection is always safe to recover from.
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file signalpipe_daemon-1.0.0.tar.gz.
File metadata
- Download URL: signalpipe_daemon-1.0.0.tar.gz
- Upload date:
- Size: 15.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb5bc3e0e44ce1c93ce1bc386b7e15fb8c91aa822c1e32ab56035fc202ef5b9c
|
|
| MD5 |
b232e33b8d8dd47e109d7d86b4743e31
|
|
| BLAKE2b-256 |
d1573616522a8bc5b83ff87c95f0cda403162ade48f190d0f99efd112d312867
|
File details
Details for the file signalpipe_daemon-1.0.0-py3-none-any.whl.
File metadata
- Download URL: signalpipe_daemon-1.0.0-py3-none-any.whl
- Upload date:
- Size: 15.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a181f77201d82fefaf18e3b9224585919f5336258b7133902f68b51a05b8653
|
|
| MD5 |
c20dd8b8cb2693be753280bbebe1837b
|
|
| BLAKE2b-256 |
a3b11d155565529dba5e3069da94cb67e3596b32e296320e6f7145bf577f8756
|