Apps / smolmachines

Agents can now sign in to smolmachines

An agent can sign in to smolmachines with AgentID, create a VM, and come back to the same machine under its own account. Verified end to end.

An agent can sign in to smolmachines with AgentID, create a cloud virtual machine, and come back to manage it under the same account. The account uses the agent's own AgentMail inbox identity, so the machine belongs to that account and the next sign-in picks up where the last one left off.

We followed that path with a test agent on September 16. It created an Alpine VM, started it, stopped it, and signed back in to find the same machine.

In short

  • AgentID turns an inbox identity into an account login smolmachines accepts through OpenID Connect.
  • The identifier is stable across sessions, which is what makes the machine findable later.
  • The disclosure requested the agent's name and email plus the owner's name and email.
  • Console lifecycle was verified. Guest commands and the cloud API have their own setup.
  • smolmachines controls the machines, permissions, and billing throughout.

What is smolmachines?

smolmachines provides Linux virtual machines. An agent building an application or processing files can use a machine as its workspace. Before it can manage cloud resources, though, it needs an account with the service.

This matters for work that continues across sessions. Creating a machine is one step. Finding the same machine tomorrow is part of the job too.

How do you assign an agent a persistent identifier across sessions?

Derive it from something that belongs to the agent and does not change, then present it the same way every time. That is what AgentID does, and the smolmachines flow is a clean illustration of why it matters.

AgentID is AgentMail's sign-in service for AI agents. It turns an inbox identity into an account login that participating services can recognize through OpenID Connect. The service receives a verified agent email and a stable identifier, and the inbox remains available for email after signup.

Three properties are what make that identifier usable as a long-lived handle.

It is derived from the inbox, not minted per session. Signing in with the same AgentMail inbox presents the same subject to the service, so smolmachines sees a returning account holder rather than a new one. Using a different inbox is a different identity and reaches a different account.

It is portable across services rather than local to one. The same inbox identity is what the agent presents to any participating service, so a developer is not maintaining a separate ad hoc identifier per vendor. What each service does with that identity is still its own decision.

It is not a credential for doing work. The identifier says which agent is at the door. A workflow that manages machines through the smolmachines API needs a credential for that API, and sign-in does not supply one.

For smolmachines users building coding agents or persistent workers, that puts account access into the agent's workflow. The agent uses its own identity to manage the workspace it needs, while the service supplies the machines and controls their permissions and billing.

Why does this matter for smolmachines?

smolmachines exists for exactly the customer that ordinary sign-in shuts out. Its machines are workspaces for agents: an agent gets a VM, runs its code, and comes back tomorrow to keep working. Until now the account around that workspace had to belong to a human, so the platform saw a person's login doing machine-speed work, and the agent's workspace only survived as long as someone kept sharing their credentials with it.

With Sign in with AgentID, the account matches the customer, and three things follow.

Every machine belongs to an identifiable agent, with an accountable human behind it. The sign-in disclosure requests the agent's name and email along with the owner's. For a platform whose business is running untrusted code, knowing who is behind each machine is a security feature.

Workspaces persist. The agent that created a VM signs back in with the same identity and finds the same machine. We verified this end to end on September 16: a test agent created an Alpine VM, stopped it, signed out, signed back in with AgentID, and returned to it.

Usage lands where it belongs. Machines, limits, and billing sit on the agent's own account instead of being smeared across a human login the platform cannot untangle.

Sign-in covers the account. Running commands inside a machine and using the cloud API have their own setup.

Who controls what

StageAgentIDsmolmachines
Identity at sign-inSupplies verified agent email and stable identifier through OpenID ConnectAccepts the sign-in, creates the cloud account
Owner disclosureSupplies owner name and email when authorizedRequests the fields, applies its own policies
Returning to the accountSame inbox returns the same identifierRestores the account and its machines
Machine creation and lifecycleNot involvedOwns create, start, stop, and delete
Resource permissions and billingNot involvedControls both
Cloud API accessNot involvedIssues and scopes the API credential
Retained storage after stopNot involvedDecides what persists

What does the agent still need beyond sign-in?

A workflow that manages machines through the smolmachines API needs a credential for that API. AgentID sign-in gets the agent into the account where it can arrange that access, and no further.

For a first experiment, create a small machine, check that returning login preserves access, and stop it when the work is done. Check storage and billing settings before leaving resources behind.

Start at smolmachines. The AgentID sign-in guide explains how to prepare the agent's inbox identity, and the smolmachines cloud docs cover programmatic machine management.

FAQ

Questions, answered.

Do not mint them yourself per service. The practical scheme is to give each agent something stable it owns, then present that same thing everywhere. With AgentID the unit of assignment is the AgentMail inbox: one inbox per agent, and the identifier follows from it. That means assigning identity is an inbox provisioning decision rather than a per-vendor registration decision, and two agents are distinguishable because they hold different inboxes. In the smolmachines check, the agent signed out and returned to the VM it had created because it presented the same inbox.

That is the point of deriving it from the inbox rather than from any one service's account. The agent presents the same identity to any service accepting AgentID, so you are not maintaining a mapping table of per-vendor identifiers and reconciling it later. What each service stores against that identity, and what it allows the account to do, remains that service's own decision, so portability of the identifier is not portability of permissions.

No. The integration check covered account creation and machine lifecycle in the browser console. Running a command inside the guest and operating the cloud API each require their own setup, and a machine reporting as started does not tell you an application inside it is ready.

In the integration check the disclosure requested the owner's name and email alongside the agent's. Owner disclosure needs the corresponding permission on the AgentMail credential authorizing the sign-in. How smolmachines uses those fields is its own decision.

Stopping a machine can leave its disk state behind, and retained storage may still carry account charges. Review storage and billing settings as part of cleanup rather than treating a stopped machine as a deleted one.

Prompt

Give yourself access to AgentMail
by following the guide at:

https://docs.agentmail.to/agent-onboarding

and refer to:

https://agentmail.to/llms.txt

for the documentation index.

Give your agent an identity of its own.

Create an AgentMail inbox and let your agent start signing in as a real user.