Vidushi office-assistant data CLI and shared store (pluggable-backend: SQLite/Mongo).
Project description
Vidushi OA
Engine uv tool install vidushi-oa (console voa) + the portable vidushi-oa skill. Install the skill with npx skills add anthill-tec/office_assistant/skills/vidushi-oa.
Vidushi OA is a personal office assistant that reads your mail (Fastmail + Gmail) and runs the everyday admin lifecycle around the things you buy and pay for — subscriptions, purchases & deliveries, invoices, warranties, support cases, and product references.
It is a set of defined roles, not just code. Each role is a Claude skill (or agent) with a
clear job; they all read and write one shared data + document store that lives in this folder.
The only program here is the voa CLI (the installable vidushi-oa package) — the behaviour lives
in the roles. Get started: uv tool install vidushi-oa (or, in-repo, uv tool install --editable .), then voa setup.
The roles
These roles are now unified into the single portable skill
skills/vidushi-oa/(see Install below); the descriptions here map 1:1 to its domains, and the legacy standalone skills + theinbox-analystagent are superseded by it.
Foundation
| Role | Job |
|---|---|
| mail-tracking-core | Shared engine every mail task loads: searches both mailboxes (Fastmail + Gmail) and merges results, enforces the phishing/customs safety rules, owns the data store, and creates calendar reminders. |
Trackers (interactive — you steer them)
| Role | Job |
|---|---|
| subscription-watch | Tracks recurring bills/subscriptions, leads with what needs action + deadlines, and remembers your keep vs cancel ("tombstone") decision per service. |
| purchase-tracker | Tracks orders through to delivery — what hasn't arrived yet first — including international customs (duty / KYC / clearance), even when Customs contacts you directly. |
| invoice-tracker | Captures purchase documents (PO / invoice / receipt) as your proof-of-purchase, saves PDF copies, and keeps personal vs business (GST) separate. |
| warranty-tracker | Records coverage and expiry per product, links the proof-of-purchase, and sets reminders before warranties lapse. Never guesses unknown terms. |
| product-catalogue | Keeps each owned product's manufacturer-official links — manual, datasheet, support, drivers, warranty policy — and specs, so "where's the manual / what are the specs" is one lookup. |
| support-case-manager | Runs warranty claims / RMAs / service requests as tracked cases, and drafts emails to the verified support contact (you review and send — it never sends on its own). |
Agent (delegated, read-only)
| Role | Job |
|---|---|
| inbox-analyst | Does a heavy, full sweep across both inboxes and returns structured findings + suggested actions. It only reads — it changes nothing; the main assistant carries out anything that needs doing. |
Fallbacks
- Browser (Claude-in-Chrome) — for anything behind a login (Amazon/portal invoices, Dell service tags, carrier tracking): you log in, the assistant reads/downloads. It never enters your credentials.
- Web search/fetch — to confirm official manufacturer/vendor terms (e.g. a warranty policy) from the source.
Install (skill + engine)
Vidushi OA ships as two pieces: the skill (skills/vidushi-oa/ — a portable vercel/skills
flat-layout bundle with its references/) and the engine (the vidushi-oa pip package that
provides the voa CLI). Install both, then voa setup.
Local / dev (works today):
npx skills add ./skills/vidushi-oa # add the skill from this repo
uv tool install --editable . # the engine (voa), editable/in-repo
voa setup # provision the active backend (SQLite by default)
agentskills validate skills/vidushi-oa # confirm the bundle shape (exits 0)
Public (one-liner, once published):
uv tool install vidushi-oa
npx skills add github.com/antojk/office_assistant//skills/vidushi-oa
voa setup
The public path is gated on the OSS-license decision + PyPI publish:
uv tool install vidushi-oais not yet on PyPI and the repo is not yet public. Until then, use the local/dev path above.
Backend. SQLite is the default backend — zero-config, no server, nothing to provision. MongoDB is opt-in: install the extra with
uv tool install "vidushi-oa[mongo]"and select it withVIDUSHI_BACKEND=mongo.
The unified skills/vidushi-oa/ skill supersedes the seven legacy ~/.claude/skills/ skills +
the inbox-analyst agent; after installing and verifying it, remove those legacy files (see
CLAUDE.md → "Vidushi OA toolkit — roles" for the coverage matrix + replacement steps).
The data store
Everything the roles learn is kept in the active backend — SQLite by default (db vidushi_oa,
zero-config), or MongoDB opt-in (VIDUSHI_BACKEND=mongo) — and accessed through the voa CLI,
never directly. voa snapshot mirrors the store to data/*.jsonl for versioning.
Eight stores form a small relational model, joined by foreign keys:
invoice (proof of purchase) → warranty (coverage/expiry) → product (manual/specs)
↘ saved PDF in documents/ ↘ contact (verified support) ↙
case (claim / RMA) links them all
- contacts — verified vendor/manufacturer support directory
- invoices — purchase documents (PO / invoice / receipt), with the originating email pinned and any saved PDF
- orders — the purchase fulfilment / delivery lifecycle (ordered → shipped → delivered, including international customs), linked to its invoice
- warranties — coverage, term, expiry, registration
- products — owned products keyed on the manufacturer, with official reference links + specs
- cases — support / claim / RMA / service cases
- subscriptions — recurring bills / SaaS / memberships, with your keep-vs-cancel disposition
- insurance — policies + regulatory renewals (e.g. a vehicle's motor policy + RC re-registration), linked to the insured product
Saved document copies live in documents/personal/ and documents/business/ (by vendor); each
invoice record points to its PDF. Renewal/warranty/customs reminders go to the calendar.
Using the CLI
# the vendor's verified support email + returns process
voa query contacts --where vendor=FNIRSI --fields support_email,rma_process
# a product with its warranty, invoice PDF, and support contact in one call (FK join)
voa get products prod_fnirsi_2c53t --expand warranty_id,invoice_id,contact_id
# what's covered, soonest expiry first
voa query warranties --fields product,expiry --sort expiry
The in-repo scripts/store.py remains a path-compat shim (python3 scripts/store.py <verb>).
Full field reference: data/schema.md. CLI details: scripts/README.md.
Local
.venvdependency. The primary install path isuv tool install vidushi-oa(persistent, isolated). On externally-managed Pythons (Arch/PEP 668) an in-repo editable install can instead live in a repo.venv(python -m venv .venv && .venv/bin/pip install -e .). The Claude Code SessionStart hook in.claude/settings.jsonprefers"$CLAUDE_PROJECT_DIR/.venv/bin/python"when that venv exists (the systempython3can't see the editable install) and otherwise falls back to systempython3— so auv tool install vidushi-oaon PATH still works and a missing.venvno longer breaks session start.
Layout
vidushi_oa/ the voa CLI package (+ schema) data/ JSONL snapshots + schema.md
scripts/ store.py path-compat shim + README documents/ saved PDFs (personal | business)
pyproject.toml packaging (vidushi-oa) CLAUDE.md guidance for Claude Code
This is a living system — roles and stores are added as needs grow (the rule of thumb: a new role
is a new skill, a new kind of record is a new store + a line in data/schema.md).
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 vidushi_oa-1.0.0.tar.gz.
File metadata
- Download URL: vidushi_oa-1.0.0.tar.gz
- Upload date:
- Size: 283.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c18a3932346f02cdb5a846bd90b2a33520eab91508d329c4c595d95c91d6a00
|
|
| MD5 |
c3834af1b06b03f94cb9749d92f86509
|
|
| BLAKE2b-256 |
e4c9972c2f654cdedf0496960bc2f921a4b8cea5cf155f3df24e642b0064960a
|
Provenance
The following attestation bundles were made for vidushi_oa-1.0.0.tar.gz:
Publisher:
ci.yml on anthill-tec/office_assistant
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vidushi_oa-1.0.0.tar.gz -
Subject digest:
9c18a3932346f02cdb5a846bd90b2a33520eab91508d329c4c595d95c91d6a00 - Sigstore transparency entry: 2256596116
- Sigstore integration time:
-
Permalink:
anthill-tec/office_assistant@f3ea9cd2c2d8cc1a057315b4184f81ae4080cf27 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/anthill-tec
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@f3ea9cd2c2d8cc1a057315b4184f81ae4080cf27 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vidushi_oa-1.0.0-py3-none-any.whl.
File metadata
- Download URL: vidushi_oa-1.0.0-py3-none-any.whl
- Upload date:
- Size: 66.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
643a9aa5888c5167d799abd1257c791474805eecea5dd6b636b9fc82fb934bf3
|
|
| MD5 |
d078c189abff6baef2890d985394adef
|
|
| BLAKE2b-256 |
d911839900d638cdfccb4017fd22040d8b15f7603449a323bbdc7682c94f768f
|
Provenance
The following attestation bundles were made for vidushi_oa-1.0.0-py3-none-any.whl:
Publisher:
ci.yml on anthill-tec/office_assistant
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vidushi_oa-1.0.0-py3-none-any.whl -
Subject digest:
643a9aa5888c5167d799abd1257c791474805eecea5dd6b636b9fc82fb934bf3 - Sigstore transparency entry: 2256596128
- Sigstore integration time:
-
Permalink:
anthill-tec/office_assistant@f3ea9cd2c2d8cc1a057315b4184f81ae4080cf27 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/anthill-tec
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
ci.yml@f3ea9cd2c2d8cc1a057315b4184f81ae4080cf27 -
Trigger Event:
push
-
Statement type: