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

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.