Standard licenses
Pluto runs on the Salesforce licenses your users already have. It needs no paid AI add-on and no extra per-conversation fee. You pay your model provider for the tokens you use.
An agent reads records, calls the tools you give it, and writes an answer. It runs as Apex in your org. Your data stays in Salesforce except for what the agent sends to the model.
Standard licenses
Pluto runs on the Salesforce licenses your users already have. It needs no paid AI add-on and no extra per-conversation fee. You pay your model provider for the tokens you use.
Any model provider
Connect OpenAI, Azure OpenAI, or any endpoint that serves the OpenAI Responses API. For another provider, a developer writes one Apex class.
Approvals before actions
Make a person approve a tool call before it runs. Send it to a user, a queue, the record owner, or the requester’s manager. A policy can ask only for large refunds and let small ones through. The agent never approves its own work.
A record of every step
Each run stores every model call, tool call, approval, and decision. The run story in Pluto Console shows who started it, what the agent saw, what it did, and who approved it.
Runs that recover
A schedule checks every 10 minutes for runs that stopped and continues them. A tool call that changed an outside system is never repeated blindly. An admin can rescue or cancel any run without code.
Sensitive data stays out of the model
Emails, phone numbers, card numbers, US SSNs, IBANs, and classified fields become tokens before the model sees them. Only tools you allow get the real values back.
Tools without code
Give an agent tools to query records with your own SOQL, create or update records with fields you allow, post to Chatter, or run a Flow. Developers add Apex tools through a published contract.
Spending limits per run
Each agent caps model calls, tool calls, and tokens per run. Set token prices on the model, and each call records its estimated cost.
| Use an agent to | For example |
|---|---|
| Sort or summarize work as it arrives | Triage each new Case: set its Priority and post a short note to its Chatter feed. |
| Draft text a person checks before it goes out | Draft a reply to a customer for the case owner to review. |
| Change records only after someone agrees | Update an Opportunity stage only after the account owner approves. |
| Work through many records without a person | Review every open Case each night and flag the ones that need attention. |
| Help a user on a record page | A screen Flow on the Case page where the user asks questions over several messages. |
| Wait for a slow outside system | Start a credit check, wait hours for the answer, then continue the run. |
Pluto Core
Required. Runs agents: model calls, tools, approvals, recovery, and the record of each run.
Pluto Model Adapters
A ready-made connection to OpenAI and other endpoints that serve the OpenAI Responses API. Skip it only if you write your own model connection.
Pluto Console
Optional, and recommended. Edit agents and tools, follow a run step by step, and rescue runs that stopped.
Pluto Core works on its own. The other two packages only use Core’s published extension points.
Pluto is free. The only official source is the GitHub repository and the packages it publishes. Pluto is not sold on AppExchange. If you paid for a copy, or see it listed under another name, it did not come from this project.
Pluto is licensed under the GNU Affero General Public License, version 3 only, with an exception that lets your own extensions stay private. The license does not cover the Pluto name or logo.
Pluto is licensed under the GNU Affero General Public License, version 3 only.