Indistocks
Desktop app for Indian stock exchange data
8 stars1 forks38 viewsAdded 1mo ago
AI-Agent Assisted
Tier 2Other AI Agent
Signals: vibe-coded-topic
README
Indistocks
A cross-platform desktop GUI application for viewing and analyzing historical data for Indian stocks from NSE (National Stock Exchange).

Features
Core Features
- Cross-Platform GUI: Native desktop application built with Rust and egui - works on Linux, Windows, and macOS
- Fully Local: All data stored and processed locally - no cloud dependencies or privacy concerns
- NSE Stock List Management: Download and maintain up-to-date list of NSE stocks with ISIN mapping
- Historical Data Downloader: Automated BhavCopy data downloader from NSE archives with progress tracking
- Stock Data Grid: Virtual scrolling table displaying all stocks with:
- Real-time filtering by price range
- Configurable date ranges (Last 5 Days, Last 30 Days, Last 52 Weeks)
- Key metrics: LTP (Last Traded Price), % Change, Volume, High/Low ranges
- Color-coded price changes (green for gains, red for losses)
- Efficient rendering for thousands of stocks
- Interactive Stock Charts:
- Historical price visualization with egui_plot
- Adaptive date formatting based on time range
- Hover tooltips showing exact price and date
- Clean, responsive interface
- Smart Search: Fast symbol search with caching for quick access to any stock
- Recently Viewed: Quick access sidebar for your most recent stock views
- SQLite Database: Efficient local storage with proper indexing and foreign key constraints

Technical Features
- Modern Rust architecture with workspace structure
- Async download with progress reporting
- Automatic data validation and integrity checks
- Configurable data directory in user config folder
- Rate-limited API requests to respect NSE servers
- CSV parsing with flexible field handling for varying NSE formats
Installation
Download Pre-built Binary
Download the latest release for your platform from the GitHub Releases page.
Linux:
# Download the latest release
wget https://github.com/brainless/Indistocks/releases/latest/download/indistocks-linux-x86_64.tar.gz
# Extract
tar -xzf indistocks-linux-x86_64.tar.gz
# Run
./indistocks
Windows:
Download indistocks-windows-x86_64.zip, extract, and run indistocks.exe
macOS: Coming soon
Build from Source
Prerequisites
- Rust toolchain (2021 edition or later)
- Display server (X11 or Wayland on Linux)
Build Steps
# Clone the repository
git clone https://github.com/brainless/Indistocks.git
cd Indistocks
# Build release binary
cargo build --release
# Run
cargo run --release
Usage

First Time Setup
- Download NSE Stock List: Go to Settings (⚙ icon) and click "Download NSE List" to get the current list of NSE stocks
- Download Historical Data: Click "Download BhavCopy Data" to fetch historical stock prices
- Data downloads from yesterday backwards for ~365 days
- Progress is shown in real-time
- Downloaded data is automatically processed and indexed

Working with Stocks
- Search for Stocks: Use the search bar at the top to find any NSE stock by symbol
- View Stock Charts: Click any stock symbol to view its historical price chart
- Browse All Stocks: Navigate to the "Stocks" page to see the complete grid with filters
- Filter by Price: Enter min/max price range to narrow down stocks
- Change Time Range: Select different ranges (5 days, 30 days, 52 weeks) to see different metrics
Data Storage
- Database:
~/.config/Indistocks/db.sqlite3(Linux) or equivalent on Windows/Mac - Downloads:
~/.config/Indistocks/downloads/organized by year/month - Logs:
~/.config/Indistocks/logs/
Project Structure
Indistocks/
├── indistocks-gui/ # GUI application (eframe/egui)
│ └── src/
│ ├── main.rs # Entry point
│ ├── app.rs # Application state
│ └── ui/ # UI components
│ ├── main_content.rs # Chart viewer
│ ├── stocks.rs # Data grid
│ ├── sidebar.rs # Recently viewed
│ ├── settings.rs # Settings page
│ └── top_nav.rs # Search bar
└── indistocks-db/ # Database library
└── src/
├── db/ # Database operations
│ ├── schema.rs # Table definitions
│ ├── operations.rs # CRUD operations
│ └── downloads.rs # Download manager
└── models/ # Data models
Acknowledgments
This project is built on the shoulders of giants. Special thanks to:
Core Technologies
- Rust - The systems programming language that makes this possible
- egui & eframe - Immediate mode GUI framework for beautiful cross-platform UIs
- egui_plot - Plotting library for interactive charts
- SQLite & rusqlite - Embedded database for local data storage
Data & Networking
- reqwest - HTTP client for downloading NSE data
- tokio - Async runtime for concurrent operations
- csv - CSV parsing for NSE data files
- zip - ZIP archive extraction
Utilities
- chrono - Date and time handling
- serde - Serialization framework
- directories - Platform-specific directory paths
- clap - Command-line argument parsing
Development Tools
- Claude Code - Agentic coding assistant that helped with architecture, implementation, and testing
- OpenCode - Agentic coding tool for development assistance
Data Source
- NSE India - National Stock Exchange of India for historical market data
License
See LICENSE file for details.
Tags
built-with-otherrustdesktop
Similar Tools
Deepseek OCR App
Quick vibe coded app for DeepSeek OCR
Other AI Agent
web appsdev toolsJavaScript
RunNX
Fast ONNX runtime in Rust
Other AI Agent
dev toolsRust
Sharethis
VerifiedShare text and files via P2P and WebSockets
Claude Code
web appsRust
Mam Audiofinder
WebUI for audiobook downloads
Other AI Agent
web appsPython
Subtrackr
Self-hosted subscription tracker
Other AI Agent
web appsGo
Quickrag
Fast RAG tool for indexing and querying documents
Other AI Agent
data toolsTypeScript