Personal data infrastructure framework — health, finance, journals, and AI agents
Project description
Roshni
roshni (روشنی) — "light" in Urdu
Safety-first personal AI assistant with Telegram and terminal support.
5-Minute First Run
You need Python 3.11+.
1. Install
pip install roshni
2. Run Setup Wizard
roshni init
The wizard guides you through:
- Bot identity (name + personality — with arrow-key selection)
- AI provider (Gemini default, with step-by-step setup guides for every provider)
- Bot's Brain (vault folder for memory, tasks, and knowledge)
- Integrations (Google services, Trello, Notion, Apple Health, Fitbit — each with setup walkthrough)
- Safety level (one simple choice: Balanced / Read only / Full access)
- Platform (Telegram or terminal)
3. Try It Immediately
roshni chat
Terminal chat is the fastest first experience. No Telegram required.
4. Run on Telegram
roshni run
Security Model
- Balanced (default): Can read and search everything, create drafts/tasks/notes. Asks before sending emails or deleting anything.
- Read only: Can search and read your data, but can't create or change anything.
- Full access: Can do everything including send emails and delete items.
- Telegram is deny-by-default unless your user ID is allowlisted.
- Gmail is draft-first by default (no send).
Integrations
| Integration | Default | Risk | Notes |
|---|---|---|---|
| Gmail | Draft-only | Low | Saves drafts locally; optional send mode |
| Google Workspace profile | Off | Medium | Guided least-privilege scope choices |
| Obsidian | Off | Low | Read-only vault search |
| Trello | Off | Medium | Boards/lists/cards/labels/comments with approvals on write actions |
| Notion | Off | Medium | Database-backed page search/create/update/append |
| HealthKit import | Off | Low | Reads Apple Health export.xml summaries |
| Fitbit | Off | Low | Steps, sleep, heart rate via Fitbit API |
| Notes | On | Medium | Local note writes (approval-gated) |
| Weather | On | Low | Read-only |
| Web search/fetch | On | Low | Read-only |
| Reminders | On | Medium | Local reminder writes (approval-gated) |
Local LLM (Ollama) Requirements
Recommended minimums:
- 8 GB RAM: small models only
- 16 GB RAM: solid everyday use
- 32 GB RAM: smoother larger local models
Quick start:
# Install Ollama first: https://ollama.com
ollama serve
ollama pull deepseek-r1
Then choose Local (Ollama) in roshni init.
Delighter Features
morning_briefdaily_planweekly_reviewinbox_triage_bundlesave_reminder/list_reminders/complete_reminder
Built-in Tools
get_weathersearch_webfetch_webpage
Reconfigure Anytime
roshni init
Optional Extras
The base install includes everything you need: LLM, Telegram, Google APIs, web search. These extras add specialized features:
| Extra | What it adds |
|---|---|
health |
Health data collection (pandas) |
fitbit |
Fitbit steps/sleep/heart rate |
journal |
Journal RAG with embeddings |
financial |
Financial calculators |
financial-full |
Market data + portfolio optimization |
agent-langchain |
LangChain integration |
all |
Everything above |
Development
git clone https://github.com/uabbasi/roshni.git
cd roshni
uv sync --extra dev
uv run pytest tests/
See CLAUDE.md for architecture details.
Project details
Release history Release notifications | RSS feed
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 roshni-0.3.0.tar.gz.
File metadata
- Download URL: roshni-0.3.0.tar.gz
- Upload date:
- Size: 207.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89c54f68d427a0248e33b1acddbcb90546d0ca7748cb9c38baa6f6122bc41071
|
|
| MD5 |
5bee4dd9bedf844e6af5e47d39f99656
|
|
| BLAKE2b-256 |
5dbe1e597666f2f1f570184050191ab0bc62e7d6eb34b7e225b853f32420f98a
|
Provenance
The following attestation bundles were made for roshni-0.3.0.tar.gz:
Publisher:
publish.yml on uabbasi/roshni
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
roshni-0.3.0.tar.gz -
Subject digest:
89c54f68d427a0248e33b1acddbcb90546d0ca7748cb9c38baa6f6122bc41071 - Sigstore transparency entry: 942548043
- Sigstore integration time:
-
Permalink:
uabbasi/roshni@4449bf43943c9010dffddd3b8b0a61e967c357ac -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/uabbasi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4449bf43943c9010dffddd3b8b0a61e967c357ac -
Trigger Event:
push
-
Statement type:
File details
Details for the file roshni-0.3.0-py3-none-any.whl.
File metadata
- Download URL: roshni-0.3.0-py3-none-any.whl
- Upload date:
- Size: 186.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6d1cc2b8780f358f30a2aeedfedb2adbcc5234014e8556702d7ba21fd2d8b89
|
|
| MD5 |
90cb6d32e29906f738f45f954f96cdeb
|
|
| BLAKE2b-256 |
0d35efbe951d89406d0de4b95558c42079e07c45f52d19463cf54f2911cd99e3
|
Provenance
The following attestation bundles were made for roshni-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on uabbasi/roshni
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
roshni-0.3.0-py3-none-any.whl -
Subject digest:
d6d1cc2b8780f358f30a2aeedfedb2adbcc5234014e8556702d7ba21fd2d8b89 - Sigstore transparency entry: 942548056
- Sigstore integration time:
-
Permalink:
uabbasi/roshni@4449bf43943c9010dffddd3b8b0a61e967c357ac -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/uabbasi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4449bf43943c9010dffddd3b8b0a61e967c357ac -
Trigger Event:
push
-
Statement type: