Developer tools that work in your IDE, on your machine. Sofia, an AI assistant for your functional team. One set of rules for both.
Hand it a requirement and it works the way a senior X++ developer does: understand first, change deliberately, build, fix, and prove. Interactively with a review gate on every write — or fully automatic when you choose. It works in Visual Studio, VS Code / Copilot, Cursor, Claude Code and Claude Desktop.
A prompt, a Markdown spec, a Word document or PDF — dropped into the chat client you already use (GitHub Copilot, Claude, Cursor, …). The assistant implements from what the requirement actually says.
It studies the existing implementation — standard and custom — follows the dependency chain across classes and methods, and runs find-references over the whole AOT, so a change in one method accounts for every caller, override, and extension point. No guessing.
It creates or modifies the objects the requirement needs — classes, tables, forms, extensions, EDTs, enums, menu items — including labels, added to your existing label file or a newly scaffolded one.
Everything is written into your custom model and added to your Visual Studio project automatically — atomic writes, a Change ID on every apply, undo with full reverse diffs.
It compiles the project — or the whole model when the change calls for it — and reports honestly: "X++ compile ran" vs "nothing changed, binaries untouched".
Compiler output is read and traced back to the objects; the assistant iterates until the build is green.
It runs BP checks over the new and modified objects and resolves the violations its own change introduced.
It writes SysTest classes in your dedicated test model, stages the records the tests need through governed SQL data access, runs the suite, and grades the outcome from the results XML. Credentials are never hardcoded or pasted in plain text — they're picked up from the environment's own configuration and sealed in the OS secret store.
Approve each step, or select automatic mode and let the assistant drive the loop end-to-end. The gates, the Change IDs, and the audit trail are identical either way.
The assistant's working instructions bind it to its governed tools — no direct XML edits on disk that would dodge the audit log, the project wiring, or undo.
Instruction packs — naming, extension-first patterns, workflow, testing, domain — are wired into Visual Studio/Copilot, VS Code, Cursor, Claude Code and Claude Desktop at install, so every MCP-capable client works to the same agreement.
During implementation it proposes saving what mattered — conventions, gotchas, environment quirks — to local memory, so the next task starts smarter.
A self-contained download bundles everything. It indexes your PackagesLocalDirectory — reusing a shared standard prebuilt where possible so only your customizations are extracted locally — and wires up your IDEs automatically, merging with any MCP servers you already have. On a live dev box, close Visual Studio first, and for the fastest build stop SQL Server, the AOS Batch service and Management Reporter while it runs — the index build competes with them for disk. The installer detects them and can stop & restart them for you.
Sofia is an AI assistant that answers in plain business language from your environment's published index — its metadata, security and label texts — and shows her sources. Company consultants and super-users use her in the dashboard, in Microsoft Teams once your Teams admin has added the app, or in Slack once your admin has connected the workspace, with nothing to install; your admin switches her on under Configuration → Sofia. The installed Sofia app adds what needs a desktop: live data through your own Microsoft sign-in.
How a posting works, where a field comes from, what a customization changed — explained from the environment's real metadata, with sources cited.
Which roles, duties and privileges grant a task, and where roles and duties overlap — from the environment's real security artifacts. Which user holds which role is data in your environment: that question needs the installed app with live data.
Menu item → form → data sources → tables → posting chain, walked through the real dependency graph, not from documentation memory.
Attach a requirement and get a functional design document grounded in the objects the change will actually touch — a running start for every CR, with your name on the cover.
Paste or attach a screenshot of the error or form and ask — or send it alone. Sofia reads it, matches it against the environment's real objects and security, and explains what it means and where to look.
Inspect records, and on a consultant seat have Sofia propose the test records needed to replicate an issue or stage a scenario — applied only after your confirmation. Every operation is entitlement-gated and audited; a super-user seat never changes anything.
What was added, changed or removed between two of your registered environments — say UAT and PROD — from their published metadata. For company consultant and super-user seats.
Consultant and super-user seats of a company plan open Sofia in the dashboard, in Teams or in Slack and read the environment's published, source-stripped index — no metadata root, no build. An individual consultant installs the app and runs Sofia on their own AI key.
SalesFormLetter_Confirm posts it, writing the journals CustConfirmJour and CustConfirmTrans; SalesFormLetter_PackingSlip and SalesFormLetter_Invoice are its siblings for the next two steps.1 tool call · $0.0075 · gpt-4.1-mini · TSE's LLMCustParameters, and the limit itself is on the customer in CustTable; look under Credit and collections.2 tool calls · $0.0098 · gpt-4.1-mini · TSE's LLMA developer, consultant or super-user seat each carries its own set of tools. The entitlement comes from our service with the seat's licence, not from the client.
For company plans, one record per tool call: which tool, which seat, when, a SHA-256 fingerprint of the arguments and the size of the response. For a change, the names of the objects and models changed. Never the arguments, code, field values or record keys. Reads are kept 90 days, changes 180; the Activity tab exports them as CSV.
Everything is written into your custom model and added to your Visual Studio project automatically — atomic writes, a Change ID on every apply, undo with full reverse diffs.
Approve each step, or select automatic mode and let the assistant drive the loop end-to-end. The gates, the Change IDs, and the audit trail are identical either way.
The assistant's working instructions bind it to its governed tools — no direct XML edits on disk that would dodge the audit log, the project wiring, or undo.
Instruction packs — naming, extension-first patterns, workflow, testing, domain — are wired into Visual Studio/Copilot, VS Code, Cursor, Claude Code and Claude Desktop at install, so every MCP-capable client works to the same agreement.
Local-first by default. The developer tools and the installed Sofia app work on your machines. Sofia in Microsoft Teams and the company dashboard, TSE's LLM and the published index are options your admin turns on. We never store your source code.
They run on your developer's machine. Whatever the tools return goes to the AI model your IDE uses, under your agreement with that provider — that traffic doesn't pass through us. We keep your account and licence and, for company plans, the value-free audit.
It runs on the consultant's or super-user's machine and sends each question to the AI model that seat uses — your own key, or TSE's LLM when your admin has switched it on. Conversations and memories are kept on that machine.
A service we host, which your admin switches on. It keeps your conversations, memories and documents for your account so you can come back to them — conversations for 12 months after the last message, or until you delete them. Sofia in Slack →
Every record, what it contains and how long we keep it — the Security page →