amal66 gives Mike a Python front door

The fork adds a Python toolkit so legal-automation teams can connect their own systems to Mike more directly.

integrationworkflow

Rather than requiring every integration to assemble raw web requests, amal66 packages the connection into a Python toolkit. It supports both standard and asynchronous work, plus live streamed responses, which matters for applications that need to show progress as AI work completes.

The addition also includes the building blocks teams expect when connecting a product to an external service: structured access to different capabilities, shared data models, clear error handling, and tests for the client itself. It is an early but meaningful move toward making Mike easier to embed in Python-based legal workflows.

Before relying on it in production, the toolkit still needs decisions around distribution, authentication, retry behaviour, and versioning.

So what Legal-ops and product teams building Python automations should care because this could lower the cost of making Mike part of a broader workflow.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

1 commit from amal66/mike, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
97b37ca4 feat(python-sdk): httpx-based sync/async client for the Mike API Amal 2026-05-24 ↗ GitHub
commit body
Adds sdks/python/ - a fully typed Python SDK covering every key API
surface so community forks can build integrations without writing HTTP
boilerplate from scratch.

Structure mirrors the Anthropic and OpenAI Python SDK conventions:
- MikeClient / AsyncMikeClient - thin httpx wrappers; swap in a custom
  httpx client for proxy/testing, pass session_token for auth
- Resources: chat, documents, projects, tabular, workflows, user - each
  exposed as client.<resource>.<verb>()
- SyncStream / AsyncStream - iterate SSE events from chat and tabular
  generate endpoints as plain Python dicts
- Pydantic v2 models for every response type; open to model_validate from
  raw API JSON
- Exception hierarchy (MikeError → APIError → AuthenticationError,
  NotFoundError, RateLimitError, InternalServerError, StreamError)
- 15 pytest tests with respx mocking (sync + async paths, error handling)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-2017.md from inside the repo you want the changes in.

⬇ Download capture-thread-2017.md