Last 12 weeks · 1 commit
1 of 6 standards met
Summary Merges the improvements from the johntheyoung/mogcli fork (16 commits, preserved with original authorship), reviewed commit-by-commit: Teams integration , , with enterprise-delegated-only capability rules , , (opens/reuses one-on-one chats) , plus support with proper HTML escaping (dry-run output deliberately omits AAD object IDs) : guarded file sharing via OneDrive with tenant/guest checks, SHA-256 content verification, permission auditing, no-retry semantics for non-idempotent operations, and rollback on failure Mail and -scoped with immutable ID preference , , with distinct action allowlist entries, disabled auto-retries on moves, and explicit indeterminate-outcome errors Bounded mutation JSON output (excludes body, recipients, and other unbounded/sensitive fields) Safety / agent controls / runtime allowlists fail-closed mode for headless automation Agent skill doc () Calendar availability on create/update Conflict resolution: the fork predates #5 (), so , , , and tests were merged to keep both feature sets (draft + folders/archive/move/mark-read). Follow-up commit: generalized SKILL.md, which referenced the fork author's specific deployment (profile names, env paths, gateway tooling), and documented in it. Test plan [x] [x] [x] — all packages pass [x] Smoke-tested and on the built binary Generated with Devin
Summary add Teams commands for listing joined teams, listing channels, and sending channel messages add Teams chat commands for listing chats, sending to an existing chat, and sending one-on-one DMs add delegated Teams channel/chat scopes and enterprise delegated-only runtime gating add granular action allowlisting via --enable-actions / MOG_ENABLE_ACTIONS for safer agent command exposure add a standalone skill for safe Microsoft 365 automation via mog update README and auth help for Teams workloads Verification go test ./... git diff --check go build -o bin/mog ./cmd/mog ./bin/mog teams --help ./bin/mog teams chat-send --help ./bin/mog teams dm-send --help /home/jmy/code/hermes-agent/venv/bin/python /home/jmy/.codex/skills/.system/skill-creator/scripts/quick_validate.py .agents/skills/mog MOG_PROFILE=dexterton MOG_ENABLE_COMMANDS=teams MOG_ENABLE_ACTIONS=teams.dm-send ./bin/mog --json teams dm-send --to john.young@dexterton.com --body "DM support smoke test" --dry-run MOG_PROFILE=dexterton MOG_ENABLE_COMMANDS=teams MOG_ENABLE_ACTIONS=teams.chats ./bin/mog --json teams chats --max 1
Summary Adds subcommand to create draft messages via Graph API () Recipients are optional — drafts can be created without and completed later in Outlook Includes support following the existing pattern Uses scope (required for creating messages) Supports both delegated and app-only auth modes Usage Changes : Add method and : Add struct and method : Add capability constant and rule : Add flag parsing tests (with and without recipients) Test plan [x] All existing tests pass () [x] New tests: , [x] verified manually [x] output verified 🤖 Generated with Claude Code
Summary This PR adds SharePoint support and an interactive Bubble Tea TUI to mogcli. New Features SharePoint Support () Sites: List, get by ID/URL/path, search, get root site Lists: List lists in sites, get list details, list list items Drive (Files)**: List drive items, download files, get metadata New auth scopes: , Bubble Tea TUI () Interactive terminal UI using Charm's Bubble Tea framework Views: Dashboard, Mail, Calendar, Files (OneDrive), SharePoint Sites Keyboard navigation: , , , , , Files Changed Added SharePoint scopes Added SharePoint and TUI commands Added SharePoint capability rules SharePoint CLI commands (NEW) TUI command launcher (NEW) SharePoint Graph API service (NEW) Bubble Tea TUI framework (NEW) Usage Examples Testing All existing tests pass Build succeeds with no errors Tested help output for new commands
Summary Two features that together enable fully headless/browserless delegated authentication for confidential client Entra ID apps: 1. / in delegated mode — Persists the client secret and includes it in token refresh requests. Required for confidential client app registrations that enforce on all token requests. 2. / in delegated mode — Seeds the token cache from a pre-existing refresh token via an immediate token exchange, bypassing the device code flow entirely. No browser needed. Zero behavior change for existing public-client users — all new code paths are gated on the presence of a stored secret or provided refresh token. Motivation Enterprise Entra ID apps are commonly registered as confidential clients (web app type), which require on all token requests — including refresh. Without these changes: Delegated mode fails with for confidential clients (no in refresh) There's no way to authenticate headlessly — always requires a browser for the device code flow The only workaround is app-only mode, which changes the permission model (application vs delegated) Example: Fully headless login Changes Design decisions scope for confidential clients: When a delegated secret is stored, both and use instead of individual scope names. This avoids consent errors that occur when individual scopes (e.g., ) weren't part of the original consent flow. The scope inherits all permissions already consented on the app registration. Secret stored under : Separate from to avoid collision between delegated and app-only modes on the same profile name. Refresh token preserved when server doesn't rotate: If the token endpoint doesn't return a new refresh token, the original is preserved in the cache. Test plan [x] All existing tests pass () [x] New: refresh request includes when stored [x] New: refresh request omits when not stored (regression) [x] New: with persists to keyring [x] New: with skips device code, uses refresh_token grant [x] New: refresh token preserved when server doesn't rotate [x] E2E: headless login + + against live Microsoft 365 tenant
Repository: jaredpalmer/mogcli. Description: Agent-friendly CLI for M365 Stars: 212, Forks: 16. Primary language: Go. Languages: Go (95.4%), Python (2%), Shell (1.9%), Makefile (0.7%). Latest release: v0.0.2 (7mo ago). Open PRs: 2, open issues: 0. Last activity: 1mo ago. Community health: 28%. Top contributors: errazuriz, mikejuyoon.