It is 4:40 on a Thursday and Priya has asked an AI assistant to add a "Delete account" button to her app's settings page. The reply says "Done, 4 files changed." Before she ships it she wants to know which four files, what the assistant read to decide that, and whether it went anywhere near the billing code. A plain chat window gives her the final paragraph and nothing else.
Maestro in one paragraph
Maestro is the full-power AI workspace in the osFoundry desktop app. You type a request the way you would in any chat, but the answer comes with its work path: every file it listed, every search it ran, every file it read or edited and every terminal command, each as its own row with a duration you can expand. It can work inside a folder on your computer, propose edits instead of silently writing them, and stop to show you a plan before it touches anything. You find it under Maestro in the sidebar. If you have used ChatGPT or Claude in a browser, think of the same conversation, with the agent's activity log and a set of brakes added beside it.
A look around the screen
- Surface tabs along the top. Maestro, Model chat, Multi chat, Research, Wiki and Code all live on this one screen. Maestro is the tab with the full toolset.
- Detail tabs above the conversation: Chat, Sources, Files, Changelog, Tools, Pipeline and Logs. They are different views of the same run. Sources keeps what the answer was based on, Changelog lists the files this chat wrote, and Logs shows the steps and, under Costs, what each request cost.
- The process rows in the transcript. Here Maestro listed
src/(38 files), grepped fordeleteUser, found 0 matches, then readaccount.tsandusers.ts. Click a row and it opens to show the exact input and output of that tool call. - The control strip above the message box: the sandbox switch, Plan OFF/ON, Tools and Goal. Below the box sit the folder, project, repo, Router and model pickers.
- The preview panel on the right, where a file, a diff or a web page opens next to the conversation instead of replacing it (Open File / App / Page, Browse Files, Browser).
Three ways people use it
A solo developer who wants the plan before the edit
Priya's case from the opening. The change touches accounts and sessions, so she would rather read the plan than review a surprise diff.
- She clicks Plan in the control strip so it reads Plan ON.
- She types "Add a Delete account button to settings" and sends it.
- Maestro reads six files and changes none. While plan mode is on, the desktop app itself refuses any tool that would write a file or run a command, so "read only" is not a polite request in the prompt.
- A Plan card arrives marked "Awaiting approval", with Approve and Cancel buttons.
The plan in the example names four files, says src/billing/ stays untouched because Stripe keeps its own records, and ends with "Nothing has been changed yet." Plan mode switches itself off when the plan arrives. Priya clicks Approve, and only then does Maestro edit the four files and run the tests (npm test -- account, 3 passed), all visible as EDIT and TERMINAL rows. Had she disliked the plan, Cancel would have left the folder exactly as it was.
What she ends up with: a change she agreed to in advance, and a transcript that shows where the agent looked and what it ran.
A new teammate finding their way around a codebase
Dan joined the team on Monday. He needs to know where the login lockout lives, but nobody calls it "lockout" in the code, so a text search turns up nothing.
- In Indexes, he adds the project folder once so it can be searched by meaning.
- In a Maestro chat on that folder, he asks where the app locks people out after failed logins.
- He watches the process rows: a folder search that returns 2 results, then a READ of
throttle.ts.
The answer points to src/auth/throttle.ts (lines 1–46) and src/routes/session.ts (lines 22–61), and explains that the code never says "lock out": after five failed attempts it sets a cooldown 15 minutes ahead and returns 429 before checking the password. Because the answer carries file paths and the rows show what was read, Dan can open the same lines in the preview panel and check the claim himself instead of trusting a summary. Nothing in this case writes to disk, so he can leave Approval Mode on its default.
What he ends up with: the two files that matter, the reason a keyword search missed them, and a chat he can come back to from the chat list.
A marketer editing copy in a repo they don't own
Sammy writes the launch page copy, but the page is a React file in the engineering repo. She wants the new text to match the tone guide in docs/, and she does not want anything committed without a look.
- She opens the composer's Approval Mode menu and picks Permission & Approve, which asks before tool calls. The other choices are Auto Accept (the default, tools run immediately), Plan First (plan before executing) and Bypass (no approvals at all, including push and form submit).
- She turns the sandbox on, so writes are staged on a branch instead of landing in the working folder.
- She asks Maestro to draft the launch page and keep it consistent with the docs. It reads
docs/tone.md, searches the source, and proposes an edit tosrc/Launch.tsx. - The diff opens in the preview panel. She accepts it, then uses Export to branch so an engineer can review it like any other change.
What she ends up with: copy that cites the tone guide it followed (the Sources tab keeps it), a reviewed diff, and a branch rather than a surprise on main.
Where Maestro sits next to Model chat, Chat and Multi chat
Maestro shares its screen with simpler siblings, and picking the right one saves time and money.
- Model chat is a tab on the same screen that sends each turn to one model you pick. It is a read-only conversation: no folder, no tools that act, no approvals. Good for a quick question.
- Chat has its own place in the sidebar. It also answers with one model you choose for the whole conversation, but keeps the file abilities, so it can propose an edit that you Accept or Reject, filed under Changelog. Use it when you want a specific model to do the work, with no router choosing for you.
- Multi chat asks several models the same question at once. In Compare you read the answers side by side; in Council the models answer, rank each other's answers blind, and one model writes a synthesis.
From Maestro the work often moves on to other parts of the app. Research turns a question into a cited report, Code runs a coding agent on its own branch, Indexes makes a folder searchable by meaning (as in Dan's case), and Version → Merge Station is where sandboxed changes get merged. If a turn goes wrong, typing /rewind in the chat restores the files that turn changed. For a deeper tour, the Maestro orchestration page walks through the detail tabs, and the plan mode page covers the approval flow.
Questions people ask first
Is plan mode just an instruction in the prompt?
No. While Plan is ON, every tool that is not on the read-only list is refused when the app dispatches it, so the agent can read, search and browse but cannot edit or run commands until you approve the plan.
What is the difference between the Plan switch and Plan First in Approval Mode?
Plan is a one-off switch for the next request: investigate, present a plan, wait. Approval Mode is the chat's standing rule for tool calls, from Auto Accept to Bypass. Plan First is one of its four settings.
The process rows are a lot. Can I hide them?
Yes. The Process Detail setting switches between Full and Compact. It only changes how the steps are displayed, not how the turn runs.
Which model does Maestro use?
By default the Router picks a model per turn, and the process rows show which one ran. You can switch the model mode (cloud, local or self-hosted) from the composer, or use Chat when you want one model pinned for the whole conversation.
You can get the desktop app at osfoundry.io/download.






