CLI app to apply for IPOs and manage MeroShare accounts across multiple users!
Project description
NEPSE IPO
A CLI application written in Python to manage MeroShare accounts — apply for IPOs, track portfolios, and check allotment results across multiple accounts simultaneously.
Features
- Apply for IPOs across multiple MeroShare accounts in one command
- Track portfolio value and performance per account or combined
- Check live IPO application status and allotment results
- Auto-sync account data once per day on first login
- Export portfolio and application history to CSV
- Tag and filter accounts for selective operations
- Telegram notifications for IPO applications
- Encrypted local storage for all account credentials
Installation
Install Python 3.9 or later, then install via pipx (recommended):
pipx install ayush-ipo
Or using pip:
pip install ayush-ipo
Launch from the command line:
ipo
First Launch
On the first launch, the application will ask you to set a master password. This password encrypts your stored account credentials locally — it is not your MeroShare password. You will be asked for it every time you launch the application.
Up to 3 password attempts are allowed before the application exits.
Commands
| Command | Description |
|---|---|
add |
Add a MeroShare account |
remove |
Remove an account |
apply |
Apply for an open IPO across all accounts |
status |
Check live IPO application status and allotment result |
status all |
Show full application history instead of the 5 most recent |
portfolio |
Show portfolio for a specific account |
portfolio all |
Show combined portfolio across all accounts |
stats |
Show IPO application statistics for all accounts |
stats {id} |
Show detailed allotment history for a specific account |
sync |
Manually sync all account data from MeroShare |
export portfolio |
Export portfolio holdings to CSV |
export applications |
Export IPO application history to CSV |
tag |
Assign a tag to an account for grouping |
select {tag} |
Filter active accounts by tag for subsequent commands |
select all |
Clear tag filter and use all accounts |
list accounts |
Show all accounts |
list accounts full |
Show all accounts including passwords and PINs |
list capitals |
Show capital/broker list |
change lock |
Change the master password |
change password |
Change a MeroShare account password |
change export |
Change the CSV export directory |
loglevel |
Set logging verbosity |
telegram enable |
Enable Telegram notifications |
telegram disable |
Disable Telegram notifications |
help |
Show available commands |
help {command} |
Show detailed help for a specific command |
exit |
Exit the application |
Aliases: result / results → status · stat → stats · cls / c → clear
Usage
Adding an account
IPO > add
Enter DMAT (16 digits): 1234567891234567
Enter Meroshare Password: ********
Enter CRN Number: 02-R00222224
Enter Meroshare PIN: ****
You can also pass all arguments inline:
IPO > add 1234567891234567 myp@ssw0rd 02-R00222224 1234
Press ESC at any field to cancel. All fields are validated immediately — DMAT must be exactly 16 digits and PIN must be numeric.
Applying for an IPO
IPO > apply
A table of open issues will be displayed. Enter the Share ID and the number of units to apply. The application will apply across all active accounts and display a per-account result table.
Checking IPO status and results
IPO > status
Displays the 5 most recent applications. Enter a Share ID to fetch live status and allotment result for all accounts. You can enter multiple Share IDs in one session — press ESC to exit, or type any valid command to switch directly to it.
To view the full application history:
IPO > status all
Allotted column values:
| Value | Meaning |
|---|---|
Yes |
Allotted — result has been published |
No |
Not allotted — result has been published |
Not Published |
Result has not been published yet |
N/A |
This account did not apply for this offering |
Viewing portfolio
IPO > portfolio
Select an account by ID. You can view multiple accounts without re-entering the command — press ESC to exit.
To view a combined portfolio across all accounts:
IPO > portfolio all
Statistics
IPO > stats
Shows a per-account breakdown of total applied, rejected, un-allotted, allotted, and pending IPOs along with the allotment success rate.
To view the full allotment history for a specific account including invested amount and current portfolio value:
IPO > stats 1
Exporting data
On first export, the application will ask you to choose a directory. This is saved for future exports. To change it later:
IPO > change export
Export portfolio:
IPO > export portfolio
Export application history:
IPO > export applications
CSV files are saved as ipo_export_{type}_{date}.csv.
Tagging and filtering accounts
Assign a tag to group accounts:
IPO > tag
Filter all subsequent commands to only operate on tagged accounts:
IPO > select family
Return to using all accounts:
IPO > select all
The active tag filter is shown in the prompt:
IPO (family) >
Auto-sync
The application automatically syncs portfolio and application data from MeroShare on the first login of each day. Subsequent logins the same day skip the sync to avoid unnecessary API calls. To force a sync at any time:
IPO > sync
Data & Privacy
All account credentials are encrypted using Fernet symmetric encryption and stored locally. No data is sent anywhere except to the official MeroShare API. A local sync file is created alongside the data file to track sync state and export preferences — this file is not encrypted and should not be committed to version control.
Requirements
- Python >= 3.9
- Active MeroShare account(s)
- CRN number for each account
Credits
Originally developed by Arpan Koirala. Extended and redesigned by Ayush Joshi (2026).
License
MIT License — see LICENSE for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ayush_ipo-0.1.1.tar.gz.
File metadata
- Download URL: ayush_ipo-0.1.1.tar.gz
- Upload date:
- Size: 91.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76f291d45e0b69ad70bc0e7373559716020106fc5bff8249def8419c7d4c93c4
|
|
| MD5 |
1710c464dd3ff8158ab935c46b6b2dd8
|
|
| BLAKE2b-256 |
4b89af34e0abdd60823d5ce1baf694a29d72540adff41bd9afca73842ea09ca1
|
File details
Details for the file ayush_ipo-0.1.1-py3-none-any.whl.
File metadata
- Download URL: ayush_ipo-0.1.1-py3-none-any.whl
- Upload date:
- Size: 35.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8280b43e9c5837b23abff55ededfbd6c008df84f96d77f1222ee51a8d25d862e
|
|
| MD5 |
5e8dde0356450a5a0a45e3b85afe27f2
|
|
| BLAKE2b-256 |
1b37d823d9e002997afc74c419af81eac382643c588f20c368c11c62d108c3d3
|