AI-powered stock and portfolio research.
Source-backed claims. Structured reports. No black boxes.
Infi is a desktop app that lets you research stocks and portfolios using AI coding agents. The agent fetches data, structures every claim as a source-backed block, and submits it through Infi's tools — the report is assembled from those typed blocks, never parsed from free-form prose.
Every analysis includes a thesis, risks, scenarios, and a final stance — all citing their sources.
Structured Research
- Thesis and risk blocks with source citations
- Scenario analysis (base, upside, downside)
- Final stance with confidence level and rationale
- Projections with bull/base/bear price targets
Portfolio Analysis
- CSV import for holdings and transactions
- Allocation review across asset class, sector, geography
- Risk assessment: factor exposures, macro sensitivities, tail risks
- Rebalancing suggestions with scenario comparisons
- Portfolio-level expected return modelling
12 Data Providers
- Tavily, Brave Search, SEC EDGAR, Alpha Vantage, Financial Modeling Prep
- Finnhub, Polygon, Yahoo Finance, NewsAPI, Finviz, StockTwits, Hacker News
- API keys stored in your OS keychain; providers without keys are excluded
Export & Share
- Standalone HTML export (interactive viewer)
- Markdown export
- Publish to PageDrop.io with a shareable link
Privacy-First
- Local SQLite storage — no cloud, no account, no telemetry
- API keys never leave your machine
Thesis & Risks |
Scenario Matrix |
Final Stance |
Projections |
Data Points |
Sources |
New Analysis |
Portfolio Risk |
Infi works with multiple AI coding agents via the Agent Client Protocol (ACP):
Claude |
Codex |
Gemini |
Kimi |
Mistral |
OpenCode |
Qwen |
|---|
You can also use any custom agent via INFI_CUSTOM_AGENT and INFI_CUSTOM_AGENT_ARGS.
brew install --cask khanhthanhdev/tap/infiDownload the latest installer from GitHub Releases.
git clone https://github.com/khanhthanhdev/infi.git
cd infi
cargo runRequires Rust (stable toolchain) and Bun for the frontend build.
- Rust — stable toolchain (managed via
rust-toolchain.tomlwithrustfmtandclippy) - Bun — frontend package manager and runner
# 1. Clone the repo
git clone https://github.com/khanhthanhdev/infi.git
cd infi
# 2. Install frontend dependencies
cd frontend && bun install
# 3. Start the frontend dev server (hot reload)
bun run dev
# 4. In a separate terminal, run the Tauri app
cd ..
cargo run| Command | Description |
|---|---|
cd frontend && bun install |
Install frontend dependencies |
cd frontend && bun run dev |
Start Vite dev server with hot reload |
cd frontend && bun run build |
Type-check and build for production |
cd frontend && bun run build:viewer |
Build standalone HTML viewer (for export) |
cd frontend && bun run check:ci |
Biome lint + format check (zero warnings) |
| Command | Description |
|---|---|
cargo run |
Run the Tauri desktop app |
cargo check |
Validate compilation |
cargo test |
Run all tests |
cargo fmt |
Format code with rustfmt |
cargo clippy --all-targets --all-features -- -D warnings |
Lint (warnings = errors) |
All checks must pass with zero warnings before committing:
cd frontend && bun run check:ci # Biome lint + format
cd frontend && bun run build # TypeScript type-check
cargo fmt --check # Rust formatting
cargo clippy --all-targets --all-features -- -D warnings # Rust lint
cargo test # All tests| Variable | Purpose |
|---|---|
INFI_DB_PATH |
Override SQLite database path |
INFI_CONFIG_PATH |
Override app config path |
INFI_MAX_METRIC_AGE_DAYS |
Data freshness cap (default: 365) |
INFI_CUSTOM_AGENT |
Custom ACP agent binary |
INFI_CUSTOM_AGENT_ARGS |
Arguments for custom agent |
INFI_SRC_KEY_<PROVIDER> |
Data source API key (e.g., INFI_SRC_KEY_ALPHA_VANTAGE) |
See docs/ARCHITECTURE.md for the full technical deep-dive.
MIT or Apache-2.0, at your option.
Research tool. Does not execute trades or provide investment advice.