Skip to main content
Hoista is a control plane. Your providers are where your code and data run. Hoista sits beside them: it keeps the record of what you run and where, and sends the commands to deploy, roll back, change settings or delete. It never runs your workloads itself.

Accounts, projects and resources

An account is a connection to one provider account, workspace or team. When you connect it, Hoista discovers what it can reach there. A resource is one thing at a provider, such as a Railway service, a Cloudflare Worker or a Neon project. A project groups the resources that make up one app. Each resource belongs to one project.
The Hoista project my-app holds three resources: a website on Vercel, an API on Railway and a database on Neon. Each keeps running at its provider.The Hoista project my-app holds three resources: a website on Vercel, an API on Railway and a database on Neon. Each keeps running at its provider.

A project groups the resources of one app. Each resource still runs at its own provider.

Watching and managed

Projects you import start in watching mode. The provider keeps building and running the project its own way. Hoista reads its status, deploys, logs and metrics. Where the provider supports it, you can ask the provider to redeploy, restart or roll back from Hoista. A managed project deploys from a source you link in Hoista: a local folder or a GitHub repository. Hoista plans and starts its deployments. See bring in a project to change modes.
Watching: the provider builds from your repository on its own, and Hoista reads its status, deploys, logs and metrics. Managed: Hoista plans and starts the deploy from your folder or GitHub repository.Watching: the provider builds from your repository on its own, and Hoista reads its status, deploys, logs and metrics. Managed: Hoista plans and starts the deploy from your folder or GitHub repository.

A watched project deploys at the provider as before, and Hoista reads it. A managed project is deployed by Hoista.

The daemon

hoistd is the daemon that runs the control plane. It stores your projects, settings and activity, checks what each agent may do, and calls each provider’s API. Desktop, the CLI and agents are all clients of the same daemon, so they see the same state.
Coding agents connect over stdio, chat apps over HTTP with OAuth, and you through the desktop app or the hoist CLI over a local socket. All of them reach hoistd, the engine, which runs on your computer or as a remote in your own account. hoistd checks each caller's access, keeps its state in SQLite, works with your providers through their APIs and CLIs, and reads a provider token only for the call that needs it.Coding agents connect over stdio, chat apps over HTTP with OAuth, and you through the desktop app or the hoist CLI over a local socket. All of them reach hoistd, the engine, which runs on your computer or as a remote in your own account. hoistd checks each caller's access, keeps its state in SQLite, works with your providers through their APIs and CLIs, and reads a provider token only for the call that needs it.

Desktop, the CLI and agents use one engine to reach your provider accounts.

Local or remote

The CLI starts the local daemon when it needs it, and Desktop can be closed. Moving to a remote is a state transfer. Changing the address alone does not copy anything. Agents sign in to Hoista with their own credentials and never receive your provider tokens. See security and credential storage.

Quickstart

Connect a provider and add your first project.

Bring in a project

Import projects and switch them to managed.

Security

Where tokens live and what agents can do.