Altien gives Mike its pick of AI engines, with Azure OpenAI now in the mix

Two new model providers plug into the same socket the existing ones use, so Mike can run on whichever AI vendor a firm already trusts.

infrastructureintegration

Maintained by Allen Morgan · verified on MikeWatch

Altien added support for two more AI model providers: OpenAI's GPT models, and Azure OpenAI - Microsoft's enterprise-hosted version of those same models, the route many large organisations prefer when they want vendor and data assurances under their existing Microsoft contract. These sit alongside the Claude and Gemini engines Mike already spoke to, and the system now picks a provider automatically based on which model you ask for. Keys can be set per-user or fall back to a firm-wide default.

There's a small but practical knock-on: the quick background job that names your chat threads now tries each provider in turn and uses whichever one has a key configured, so that nicety keeps working no matter which engine a firm has wired up. One piece is flagged as still to come - a passwordless Microsoft sign-in method for the Azure path.

So what Worth a look for any firm standardising on Microsoft and Azure, who can now run Mike without bringing in a separate AI vendor.

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 Altien/mikeOssAzure, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
16a0799f feat(llm): OpenAI + Azure OpenAI providers + global-key fallback chain Allen Morgan 2026-05-08 ↗ GitHub
commit body
Adds OpenAI and Azure OpenAI to the LLM adapter alongside the existing
Claude and Gemini providers, plus the supporting plumbing on the user-
profile and chat sides:

  * lib/llm/openai.ts            - streaming + completion adapter for
                                   plain OpenAI.  Tool-call assembly
                                   matches the upstream OpenAI tool
                                   schema, so Mike's existing tool
                                   surface passes through untouched.

  * lib/llm/azureOpenai.ts        - Azure OpenAI adapter (endpoint +
                                   apiVersion + deployment).  apiKey
                                   is optional so Managed-Identity
                                   auth can land later without an API
                                   change.

  * lib/llm/azureOpenaiDeployments.ts - lists deployments configured
                                   against the user's AOAI resource
                                   for the in-app model picker.

  * lib/llm/types.ts / models.ts  - Provider type now includes
                                   "openai" and "azureOpenai"; AOAI
                                   model ids use the prefix
                                   "aoai:<deployment>" so providerForModel
                                   can route them at runtime.

  * routes/llm.ts                 - GET /llm/azure-openai/deployments
                                   exposes the deployment list to the
                                   frontend model picker.

  * lib/userSettings.ts           - fast_model resolver now walks a
                                   fallback chain: user pick →
                                   Gemini Flash Lite → OpenAI nano →
                                   Claude Haiku → AOAI default
                                   deployment.  AzureOpenaiSettings is
                                   constructed from the persisted
                                   profile columns.

  * routes/{chat,tabular}.ts      - title_model → fast_model.  Title
                                   model name is no longer
                                   provider-coupled.

Adds the openai npm package as a runtime dep.

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-192.md from inside the repo you want the changes in.

⬇ Download capture-thread-192.md