pam ▸ README.md
updated 2026-03-28
Unicorn.Land — Signals for Kalshi (Human-in-the-loop)
This MVP ingests RSS feeds, translates/analyzes items, maps them to Kalshi markets, and requests human approval via Telegram before simulating/placing orders. Defaults to dry-run and no autopilot.
Quickstart
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# Fill in TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID, TELEGRAM_ADMIN_IDS
# Optionally add Kalshi credentials (stays dry-run unless --live)
python -m spacy download en_core_web_sm
python -m spacy download xx_ent_wiki_sm
python -c "from core.storage import init_database; init_database()"
python main.py test-alert
python main.py webhook --port 5000
# In another terminal: use ngrok to forward 5000 and set Telegram webhook to https://<ngrok>/telegram/webhook
python main.py status
python main.py run --dry-run
Non‑negotiables
- No autonomous trading. All orders require explicit approval in Telegram.
- Fail‑safe defaults:
dry_run=true,autopilot=false. - Modular design separating signal generation and venue execution.
- Free-tier only dependencies.
CLI
python main.py run --dry-run
python main.py run --live --confirm
python main.py status
python main.py webhook --port 5000
python main.py test-alert
python main.py opportunity-scan --limit 10
python main.py trade-candidates --limit 10
Finding Potential Trades
Use the scanner and candidate-review flow before touching any execution script:
python main.py opportunity-scan --limit 10
python main.py trade-candidates --limit 10
python main.py research-status
opportunity-scan ranks fresh Kalshi opportunities and journals them locally by default.
trade-candidates runs a fresh scan, then summarizes deployable, review, and research candidates using the current research deployment gate from research/latest_state.json.
execute_trades.py is intentionally report-only unless you explicitly opt into live Polymarket execution.