products

All Purpose Login

Products/All Purpose LoginNot released yet

A CLI plus a paired Claude / Codex agent skill. Register as many Gmail and Microsoft accounts as you need, then operate them — read and send mail, schedule meetings, post in Teams — directly from your AI agent. The everyday work runs through one consistent surface.

What it does

All Purpose Login is two things glued into one. A CLI (apl) that handles the browser-based OAuth dance and hands you fresh access tokens on demand. And a paired Claude / Codex agent skill that wraps the same engine so your AI agent can call Gmail, Outlook, Google and Microsoft Calendar, and Teams by name.

Register an account once — apl setup google or apl setup ms — then label it (--as work, --as personal). Repeat for as many handles as you need. From then on, both surfaces — terminal and agent — can call any API across any account.

No SDKs to learn. No client libraries to wrangle. Just tokens, on demand, for the APIs you already know — and one agent skill that knows where to point them.

Features

CLI + Claude/Codex agent skill

Same engine, two surfaces. Use the CLI directly from your terminal, or invoke it as an installable Claude / Codex agent skill — your AI agent calls Gmail, Google Calendar, Outlook, Microsoft Calendar and Teams by name, with the same auth.

Many Gmail + Azure accounts, side by side

Register as many Google handles and Microsoft (Azure AD) tenants as you need — personal, work, client A, client B, a one-off audit account. Each labelled and switchable. Tokens refresh independently.

Local-only storage

Refresh tokens live in your OS keychain or an encrypted file under your home directory. Deemwar servers never see your tokens or your data.

Delegated, user-consented access

The tool acts on your behalf using scopes you approve in the browser consent screen. Revoke access at any time from your Google or Microsoft account settings.

Two surfaces, one engine

From the terminal

# First-time login (opens browser, you approve scopes)
apl setup google --as personal
apl setup ms --as work --tenant contoso.onmicrosoft.com
# List every registered account
apl accounts
# Call Gmail as 'personal'
TOKEN=$(apl token google --as personal --scope gmail.readonly)
curl -H "Authorization: Bearer $TOKEN" \
  https://gmail.googleapis.com/gmail/v1/users/me/messages
# Call Microsoft Graph as 'work'
TOKEN=$(apl token ms --as work --scope "Mail.Read")
curl -H "Authorization: Bearer $TOKEN" \
  https://graph.microsoft.com/v1.0/me/messages

From Claude or Codex (agent skill)

Install the paired agent skill once, and your AI can talk to every registered account by name — no token plumbing in the prompt.

You: "Pull my last 5 unread emails on 'work', then check my
      'personal' calendar for a free hour tomorrow."
Agent: (calls apl skill) → Microsoft Graph Mail (work)
       (calls apl skill) → Google Calendar events (personal)
       → summarises the result in chat

Supported scopes

Google

  • •Gmail (read, send, modify)
  • •Google Calendar (events)
  • •Basic profile (email, name)

Microsoft

  • •Outlook Mail (read, send)
  • •Microsoft Calendar (events)
  • •Microsoft Teams (chats, messages)
  • •Basic profile (email, name)

You approve every scope explicitly in the browser consent screen. The CLI only requests what you ask it to.

Your data stays on your machine

All Purpose Login is a local tool. It does not send your tokens, email contents, calendar events, or any other user data to Deemwar or any third party. Read the full privacy policy for this product.

All Purpose Login is not released yet. Write to io@deemwar.com if you want to hear when it is.

Email io@deemwar.com

Contact

Tell us what you are building.

Start a conversation →