Midtown internal toy chest

Midtown Toys

Small, focused tools for real Midtown workflows

Windows-first toys, read-only Microsoft 365 helpers, and a shared auth foundation that keep onboarding compact and practical. Built for our own work first, then polished into reusable tools.

6 active toys
3 live Graph helpers
1 private feed
Ready

`todo`, `quick-capture`, `mail-triage`, and `calendar-glance` are the current operator-ready tools.

Distribution

`todo` is already moving through the private WinGet pilot and the vanity feed hostname is in progress.

House Rule

We feature tools only after the consent surface and the real operator flow are both proven.

Ready Now

Proven Toys

These are the tools we have actually exercised in the current wave, with live auth or real local verification behind them.

Quick Capture

Fast capture into notes and workflows, with short command aliases intact and the old `-cli` naming cleaned out of the project shape.

Python Capture Notes
quick-capture --help GitHub →

Mail Triage

Read-only inbox triage with machine-friendly JSON output. Live-verified with WAM and `Mail.ReadBasic`.

Python Mail.ReadBasic JSON
.\invoke.ps1 inbox --limit 10 GitHub →

Calendar Glance

Read-only agenda snapshots for quick planning. Live-verified with WAM and `Calendars.Read`.

Python Calendars.Read Agenda
.\invoke.ps1 agenda --days 3 GitHub →

Context Sync

The most mature graph-connected toy in the chest, and the reference implementation for the shared Microsoft 365 auth story.

Python Microsoft Graph Knowledge Graph
work-context-sync --help GitHub →

Shared Microsoft Auth

The small reusable auth layer that keeps the Graph toys compact: WAM-first on Windows, common cache behavior, and thin Graph bootstrap.

Python MSAL WAM
mtg-microsoft-auth GitHub →

Install Notes

Most toys are still easiest to run from source. Distribution is real now, but we are still being honest about what is polished versus merely promising.

Source
Distribution
# Typical local setup git clone https://github.com/Midtown-Technology-Group/todo.git cd todo py -3 -m venv .venv .\.venv\Scripts\python.exe -m pip install --upgrade pip .\.venv\Scripts\python.exe -m pip install -e .[dev]
# Private WinGet pilot winget source add -n mtg-tools -a https://wonderful-pond-03cdbc40f.7.azurestaticapps.net winget source update # Todo is live in the private feed at 0.1.1. # Final client install validation still needs an elevated pass.

Philosophy

🧸

One Job Each

Each toy stays narrow and useful. No kitchen sinks, no sprawling platform story inside a tiny tool.

🪟

Windows First

We optimize early versions for the way we actually work, then expand portability only where it helps.

🔐

Consent-Light by Default

The current wave favors scopes a normal user can grant cleanly. If a toy trips tenant consent, it gets parked instead of hand-waved.

Parked And Next

📁

File Finder

Parked for now because `Files.Read` triggers tenant consent instead of staying friction-light.

👥

People Lookup

Also parked. `People.Read` is not in the easy-onboarding bucket in this tenant.

📦

Private WinGet Feed

`mtg-winget` is live, `todo` is published into it, and the last remaining check is a client-side `winget install` pass with elevation.

🌐

More Consent-Safe Toys

Future additions will stick to the same rule: prove the scope story first, then feature the toy.