Pre-Market Briefing Bot — Fin Bro Finance
AI POWERED
Market Context Inputs
Discord Message Preview
FB
Fin Bro BotBOT
Generate a briefing first, then click "Preview in Discord" to see how it looks.
Discord Bot Setup Guide
01

Create a Discord Application

Go to discord.com/developers/applications → click "New Application" → name it "Fin Bro Bot" → go to the Bot tab → click "Add Bot".

02

Copy Your Bot Token

In the Bot tab, click "Reset Token" → copy it. This is your DISCORD_BOT_TOKEN. Store it securely — never share it publicly.

03

Invite the Bot to Your Server

Go to "OAuth2" → "URL Generator" → check bot scope → check Send Messages + Read Message History permissions → copy the URL → open it in browser → select your Fin Bro Finance server.

04

Get Your Channel ID

In Discord, go to User Settings → Advanced → enable "Developer Mode". Right-click your #morning-brief channel → "Copy Channel ID". This is your CHANNEL_ID.

05

Deploy the Python Bot Script

Install dependencies: pip install discord.py anthropic schedule. Run the bot script below on a VPS, Raspberry Pi, or Railway.app for 24/7 delivery.

Python Bot Script
finbro_briefing_bot.py
import discord
import anthropic
import schedule
import time
import asyncio
from datetime import datetime

DISCORD_BOT_TOKEN = "YOUR_BOT_TOKEN_HERE"
CHANNEL_ID = 1234567890  # Your channel ID (integer)
ANTHROPIC_API_KEY = "YOUR_ANTHROPIC_API_KEY"

intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
anth_client = anthropic.Anthropic(api_key=ANTHROPIC_API_KEY)

def generate_brief():
    today = datetime.now().strftime("%A, %B %d, %Y")
    prompt = f"""You are the Fin Bro Finance pre-market briefing bot. Write a sharp,
actionable pre-market briefing for options traders (0DTE SPX/NDX focus) for {today}.

Format the briefing using Discord markdown (no HTML). Structure:
**🌅 FIN BRO PRE-MARKET BRIEF — {today}**

**📊 MARKET SNAPSHOT**
[Futures, overnight action, key moves]

**🎯 SPX KEY LEVELS**
[Support, resistance, gamma walls, key strikes]

**⚡ TODAY'S CATALYSTS**
[Major events, earnings, fed speakers, economic data]

**🔭 TRADE THESIS**
• Thesis 1: [specific setup with levels]
• Thesis 2: [specific setup with levels]  
• Thesis 3: [specific setup with levels]

**⚠️ RISK FACTORS**
[What could invalidate the thesis today]

**💬 GEX REGIME**
[Current dealer positioning read and implication for 0DTE]

Keep it under 400 words. Be specific, not generic. No fluff.
End with: _Fin Bro Finance — Trade sharp. Manage risk._"""

    message = anth_client.messages.create(
        model="claude-opus-4-5",
        max_tokens=800,
        messages=[{"role": "user", "content": prompt}]
    )
    return message.content[0].text

async def send_brief():
    channel = client.get_channel(CHANNEL_ID)
    if channel:
        brief = generate_brief()
        # Split if over 2000 chars (Discord limit)
        if len(brief) > 2000:
            parts = [brief[i:i+1990] for i in range(0, len(brief), 1990)]
            for part in parts:
                await channel.send(part)
        else:
            await channel.send(brief)
        print(f"Brief sent at {datetime.now()}")

def run_schedule():
    schedule.every().monday.at("08:30").do(lambda: asyncio.run_coroutine_threadsafe(send_brief(), client.loop))
    schedule.every().tuesday.at("08:30").do(lambda: asyncio.run_coroutine_threadsafe(send_brief(), client.loop))
    schedule.every().wednesday.at("08:30").do(lambda: asyncio.run_coroutine_threadsafe(send_brief(), client.loop))
    schedule.every().thursday.at("08:30").do(lambda: asyncio.run_coroutine_threadsafe(send_brief(), client.loop))
    schedule.every().friday.at("08:30").do(lambda: asyncio.run_coroutine_threadsafe(send_brief(), client.loop))
    while True:
        schedule.run_pending()
        time.sleep(30)

@client.event
async def on_ready():
    print(f"Fin Bro Bot online as {client.user}")
    import threading
    t = threading.Thread(target=run_schedule, daemon=True)
    t.start()

client.run(DISCORD_BOT_TOKEN)
HOSTING OPTIONS
Railway.app — Free tier available, deploy from GitHub, always-on. Recommended for beginners.
DigitalOcean Droplet — $4/mo, full control, run with nohup python finbro_briefing_bot.py &
Raspberry Pi — One-time cost, runs forever on your network.