Getting Started¶
Prerequisites¶
- Python 3.12+
- uv package manager
Installation¶
git clone <repo-url>
cd bo-finance
uv sync
Or with dev dependencies (for testing and docs):
make install-dev
Verify Installation¶
uv run bof --help
You should see the top-level command groups: account, portfolio, order, quote, market, watchlist, earnings, news, search, thesis, sec, review, db, and service.
Configuration¶
Copy .env.example to .env and fill in your API keys:
cp .env.example .env
Required Keys¶
| Key | Service | How to get it |
|---|---|---|
SNAPTRADE_CLIENT_ID |
SnapTrade (brokerage) | Sign up at snaptrade.com |
SNAPTRADE_CONSUMER_KEY |
SnapTrade | Same as above |
SNAPTRADE_USER_ID |
SnapTrade | Same as above |
SNAPTRADE_USER_SECRET |
SnapTrade | Same as above |
FINNHUB_API_KEY |
Finnhub (market data) | Free at finnhub.io/register |
FRED_API_KEY |
FRED (macro indicators) | Free at fred.stlouisfed.org |
Optional Keys¶
| Key | Service | How to get it |
|---|---|---|
TELEGRAM_BOT_TOKEN |
Telegram event source | Create bot via @BotFather |
BRAVE_API_KEY |
Brave Search (web research) | Free at brave.com/search/api |
SEC_USER_AGENT |
SEC EDGAR (filings) | Set to "Your Name your@email.com" per SEC fair access policy |
Validate Setup¶
uv run bof init
This checks all keys are present and validates connections to SnapTrade and FRED.
Watchlist¶
Watchlist tickers are stored in investments/watchlist.txt, one ticker per line.
Investment Theses¶
Per-symbol thesis files live in investments/theses/ as YAML. See CLI Reference for the schema and usage.
Data Sources¶
| Source | Provider | What it provides | API key |
|---|---|---|---|
| Market data | Finnhub | Quotes, index/sector performance, earnings calendar, news headlines | FINNHUB_API_KEY |
| Brokerage | SnapTrade | Account balances, positions, order history | SNAPTRADE_* |
| Macro | FRED | Fed funds rate, treasury yields, CPI, unemployment, jobless claims | FRED_API_KEY |
| Web search | Brave Search | Recent news, analyst coverage, research per symbol | BRAVE_API_KEY |
| SEC filings | EDGAR | 10-K, 10-Q, 8-K annual and quarterly reports | SEC_USER_AGENT |
Next Steps¶
- CLI Reference — full command listing with example outputs
- Event Service — async pub/sub runtime