Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Truenex Promoter

Autonomous AI marketing agent for open-source projects. Monitors your repo, discovers promotion opportunities, generates content drafts, and asks for your approval before taking action.

Human-in-the-loop by design. The agent proposes, you decide. No automated posts, no spam, no surprises.

PyPI Python License

Product Strategy: Open Core + Freemium UI

Edition Interface What's included Price
OSS CLI (this repo) Monitoring, queue, generators, LLM local/remote, hardware analyzer Free
Pro Desktop UI (Tauri) System tray, dashboard, analytics, auto-executors $19/mo
Team Desktop + Cloud Multi-repo, multi-user, sync $49/mo
Enterprise SaaS Web Zero install, white-label, API, support Custom

The CLI is and will remain open-source forever. The UI is a closed-source paid add-on.

Current Status

Alpha — dogfooding on Truenex Memory.

What it does

  1. Monitors GitHub — stars, issues, releases
  2. Detects milestones — celebrates star milestones (10, 25, 50...)
  3. Discovers Awesome Lists — finds relevant curated lists for your project
  4. Finds Stack Overflow questions — unanswered questions matching your tags
  5. Generates drafts — PR descriptions, social posts, dev.to articles, Product Hunt launches
  6. Queues for approval — every action waits for your approve or reject

Quick Start

# Install from PyPI
pipx install truenex-promoter
# or
pip install truenex-promoter

# Configure (optional)
export TRUENEX_PROMOTER_OWNER=your-org
export TRUENEX_PROMOTER_REPO=your-repo

# Check once
trnx-promoter
# or
python -m truenex_promoter

# Run continuously
trnx-promoter --loop

# View pending actions
trnx-promoter --queue

# Approve an action
trnx-promoter --approve <action-id>

# Reject an action
trnx-promoter --reject <action-id> --reason "not relevant"

Configuration

All settings are via environment variables:

Variable Default Description
TRUENEX_PROMOTER_OWNER marcomnit GitHub owner
TRUENEX_PROMOTER_REPO truenex-memory GitHub repo
TRUENEX_PROMOTER_GITHUB_TOKEN — GitHub personal access token
TRUENEX_PROMOTER_INTERVAL 60 Check interval in minutes
TRUENEX_PROMOTER_LLM_PROVIDER none none, openai, deepseek, kimi, llamacpp
TRUENEX_PROMOTER_LLM_API_KEY — API key for remote LLM
TRUENEX_PROMOTER_LLM_MODEL — Model name (e.g. deepseek-chat)
TRUENEX_PROMOTER_LLM_MODEL_PATH — Path to .gguf file for local LLM
TRUENEX_PROMOTER_LLM_TEMPERATURE 0.7 Sampling temperature (0.0–2.0)
ENABLE_AWESOME_FINDER true Discover Awesome Lists
ENABLE_STACKOVERFLOW true Find Stack Overflow questions
ENABLE_DEVTO true Generate dev.to drafts
ENABLE_PRODUCTHUNT true Generate Product Hunt drafts

Configuration is validated on startup. Invalid values raise clear error messages.

LLM Configuration

The promoter can use a local LLM (llama.cpp) or remote API.

# Download Nemotron 4B Q4 (~3GB)
python -c "from huggingface_hub import hf_hub_download; hf_hub_download(repo_id='unsloth/NVIDIA-Nemotron-3-Nano-4B-GGUF', filename='NVIDIA-Nemotron-3-Nano-4B-Q4_K_M.gguf', local_dir='./models')"

# Configure
export TRUENEX_PROMOTER_LLM_PROVIDER=llamacpp
export TRUENEX_PROMOTER_LLM_MODEL_PATH="./models/NVIDIA-Nemotron-3-Nano-4B-Q4_K_M.gguf"
export TRUENEX_PROMOTER_LLM_N_GPU_LAYERS=-1

# Test
trnx-promoter --llm-check

Remote API (OpenAI, DeepSeek, Kimi)

export TRUENEX_PROMOTER_LLM_PROVIDER=deepseek
export TRUENEX_PROMOTER_LLM_API_KEY=sk-...
export TRUENEX_PROMOTER_LLM_MODEL=deepseek-chat
trnx-promoter --llm-check

Example Output

[2026-05-14 08:38:46 UTC] EVENT: NEW_RELEASE
Title: New release: v0.1.0-alpha.1
URL: https://github.com/marcomnit/truenex-memory/releases/tag/v0.1.0-alpha.1

[2026-05-14 08:38:46 UTC] ACTION PROPOSED (ID: 6696a400)
Title: Announce release v0.1.0-alpha.1
Approve:  trnx-promoter --approve 6696a400
Reject:   trnx-promoter --reject 6696a400

[2026-05-14 08:38:49 UTC] ACTION PROPOSED (ID: f15b266a)
Title: Propose addition to awesome-mcp-servers
Target: https://github.com/punkpeye/awesome-mcp-servers

Architecture

trnx-promoter check
    -> github_monitor.check()      # fetch repo state
    -> content_generator           # draft posts/PRs/articles
    -> awesome_finder              # discover awesome lists
    -> stackoverflow_finder        # find relevant questions
    -> action_queue.add()          # queue for approval (SQLite)
    -> notifier.action_proposed()  # notify user

User: trnx-promoter --approve ID
    -> action_queue.approve()      # mark approved
    -> executor.execute()          # generate file + open browser

Security

  • Token sanitization — API keys and tokens are redacted from logs and error messages
  • Path traversal protection — executor filenames are sanitized and bound-checked
  • Action type whitelist — only known action types can be queued
  • Rate limiting — GitHub API calls include retry with exponential backoff
  • SQLite persistence — atomic operations prevent race conditions in the action queue

Development

# Clone
git clone https://github.com/marcomnit/truenex-promoter.git
cd truenex-promoter

# Install editable
pip install -e ".[dev]"

# Run tests
pytest tests/ -v

# Build
python -m build

License

Apache 2.0

Metadata

Release files for truenex-promoter 0.1.0a2

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

Source distribution (sdist)

Source distribution for truenex-promoter 0.1.0a2
File Size Uploaded Provenance Actions
truenex_promoter-0.1.0a2.tar.gz 41.1 kB Without provenance Details for truenex_promoter-0.1.0a2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for truenex-promoter 0.1.0a2
File Interpreter ABI Platform Actions
truenex_promoter-0.1.0a2-py3-none-any.whl Python 3 none any Details for truenex_promoter-0.1.0a2-py3-none-any.whl

Total release size: 88.7 kB

Release files / truenex_promoter-0.1.0a2.tar.gz

Download URL truenex_promoter-0.1.0a2.tar.gz
Size 41.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d954e815b3f89e0dfb4b10bd1fb6fdd8eed9922bcaa95b9366e7e15ad3694f5e
BLAKE2b-256 checksum
How to use checksums
92bf332495569414c29112c8b09fa94f78110eefed66be92922c10c919e8cefc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.1

Release files / truenex_promoter-0.1.0a2-py3-none-any.whl

Download URL truenex_promoter-0.1.0a2-py3-none-any.whl
Size 47.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7f9a1ed9e82a096a37955cb6e348208133050c715e527d62af096c92d00f7e63
BLAKE2b-256 checksum
How to use checksums
07ba32c514028a20d780def35dbd5d4254939c25762c610adce7c61e1de95529
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.1

Security for truenex-promoter 0.1.0a2

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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