Working with realtime market data usually sounds simpler than it feels in practice. The stream itself is only one part of the problem. Login, instrument discovery, field selection, live viewing, and local storage all sit around it, and that is where most of the friction actually shows up.
nubracollector was built to remove that gap. Instead of making users wire together authentication, websocket setup, field filtering, and local persistence on their own, it gives them a cleaner path from launch to live data through either a popup UI or a simple Python workflow.
Install From PyPI In Seconds#
The fastest way to get started is to install the package directly from PyPI.
This section should show the simplest onboarding path:
- open the PyPI package page
- copy the install command
- install the package locally
What NubraCollector Is#
nubracollector is a desktop UI and Python helper library for Nubra realtime streams.
It gives users two ways to work:
- Popup UI mode for login, stream selection, field filtering, live viewing, and saving
- Python mode for programmatic collection inside scripts and workflows
The goal is simple: make realtime market data easier to consume without forcing every user to build their own stream tooling first.
What It Supports#
NubraCollector supports all five realtime stream types available through the Nubra websocket surface:
indexoptionorderbookgreeksohlcv
For each stream, users can:
- choose instruments
- choose only the fields they want
- view structured live rows in the UI
- save the output locally
That means a user can move from login to a live structured table without building a custom websocket client first.
The UI Workflow#
The desktop flow is intentionally simple:
- Click Login
- Choose environment
- Enter phone number
- Enter OTP or TOTP
- Enter MPIN
- Choose stream type
- Pick instruments
- Select fields
- Start the stream
- Save output to local storage
Once login is complete, the auth UI collapses into a compact connected state instead of occupying the whole control pane.
The "Two Lines of Code" Experience#
If a user just wants the popup UI, they can launch it in one line:
from nubracollector import launch_ui
launch_ui()If they want to work programmatically, they can use the collector class directly:
from nubracollector import NubraCollectorFrom there, the workflow can be scripted with subscriptions, field filtering, and storage targets.
Popup UI Demo: From Two Lines of Code to Saved CSV#
This is the most direct NubraCollector workflow:
- run two lines of Python
- launch the popup UI
- log in
- pick a stream
- select fields
- start the stream
- save the output to CSV
This section should show the full path from launch to saved output:
- the two-line launch code
- the popup login flow
- stream selection
- field selection
- live table updates
- CSV save target and output file
Why This Is Useful#
Realtime data is only part of the problem. The real work is everything around it:
- auth
- instrument lookup
- payload normalization
- field filtering
- local persistence
NubraCollector handles those pieces together so users can move from "how do I wire this?" to "what do I want to watch and save?"
Searchable Instruments and Stream-Specific Fields#
One of the practical improvements in NubraCollector is that it does not force users to type raw values blindly.
The app can cache instrument data locally and then use that cache to:
- search instruments
- show stream-relevant choices
- reduce manual entry mistakes
Field selection is also stream-specific. That means a user on the index stream only sees index-related fields, while a user on greeks sees Greeks-specific fields.
This keeps the live table much more readable.
Local Storage Options#
NubraCollector currently supports saving stream output to:
- CSV
- Excel
- SQLite
- Parquet
This matters because different users want different outcomes:
- CSV for quick sharing
- Excel for manual review
- SQLite for lightweight local analysis
- Parquet for larger structured datasets
A Practical Use Case#
A user tracking an index or liquid symbol can:
- launch the popup UI
- log in once
- choose the
indexstream - select only fields like
indexname,timestamp,index_value,volume, andchangepercent - start the stream
- save rows directly to a CSV file while watching the live table update
That workflow is much faster than building a custom collector from scratch every time.
Where It Fits#
NubraCollector is useful for:
- strategy prototyping
- market monitoring
- local recording of websocket data
- quick operational dashboards
- debugging stream payloads before integrating them into a larger system
It is especially useful for developers and traders who want a working realtime workflow before building a larger app around it.
Closing Thought#
The point of NubraCollector is not to replace custom systems. It is to reduce the time between "I have access to a websocket stream" and "I am already viewing and saving useful market data."
For many workflows, that is the difference between an API that is technically available and a tool that is actually usable.
