Build log → social posts. No slop.
- You write a daily build log (
build-log.md) - LogCast reads it, generates draft posts via local AI (Ollama) or cloud (Anthropic/OpenAI)
- You review, edit, approve in a browser UI
- One click posts to Bluesky + X
- Python 3.10+
- Ollama running locally (for local generation)
pip install ollama pydantic(for reliable structured output)- Playwright (only needed for X posting):
pip install playwright && playwright install chromium
-
Put
pipeline.pyandui.htmlin a folder -
Create
build-log.md:
## 2026-03-18
Set up Codemagic CI/CD. Android and iOS builds green.
Uploaded AAB to Google Play internal testing.
IPA auto-uploaded to TestFlight via App Store Connect.- Set credentials as environment variables:
# Bluesky (get app password from Settings → Privacy → App Passwords)
export BLUESKY_HANDLE="you.bsky.social"
export BLUESKY_APP_PASSWORD="xxxx-xxxx-xxxx-xxxx"
# X (used for browser automation — no API needed)
export X_USERNAME="yourusername"
export X_PASSWORD="yourpassword"
# If using Anthropic instead of Ollama:
export ANTHROPIC_API_KEY="sk-ant-..."Never hardcode passwords in the script.
- Run:
python pipeline.pyOpens the UI at http://localhost:7823
python pipeline.py # generate + open UI (default)
python pipeline.py generate # generate drafts only (no UI)
python pipeline.py post # post all approved drafts
Default: Ollama (local, free). Change in the UI config panel or edit CONFIG["provider"] in pipeline.py.
For small local models (under 14B), LogCast uses a simplified prompt and forces JSON output mode. Larger models and cloud APIs get the full prompt.
Recommended local models (by quality):
qwen2.5:32b— best local quality, needs 24GB+ RAMqwen2.5:14b— good balance, needs 16GB+ RAMqwen3.5:4b— works but hit-or-miss on JSON output
Dated sections, no structure needed:
## 2026-03-19
Whatever you actually did. Technical, casual, frustrated — doesn't matter.
The AI picks out the interesting bits.
## 2026-03-18
Previous day here.Daily at 9am:
- Task Scheduler → Create Basic Task
- Trigger: Daily, 09:00
- Action: Start program
- Program:
python - Arguments:
C:\logcast\pipeline.py generate - Start in:
C:\logcast\
- Program: