Collaborate on an app

Give a teammate full development access to one of your apps — from the console, the CLI, or your coding assistant.

Every app has one owner — the person who created it. When someone else needs to work on it with you, add them as a collaborator. They get the same day-to-day access you have on that app, and nothing at all on your other apps.

Who you can add

Anyone who is already a member of your workspace. If the person you have in mind isn't there yet, invite them to the workspace first — workspace membership is the trust boundary, so there is no separate invitation to accept for the app itself. Access starts on their next command.

Add a teammate

In the console — open the app, go to Settings → Collaborators, pick the teammate from the list and choose Add collaborator.

From the terminal, in the app's folder:

ghosty collaborators                       # who can develop this app
ghosty collaborators add sam@company.com   # give a teammate access

Run any of these from outside the app folder with --app <app-name>, and add --json when a script or an assistant is reading the output.

From your coding assistant — if you use the Ghosty tool server (ghosty mcp), your assistant can do the same three things: list collaborators, add one, remove one. Ask it in plain language: "add sam@company.com as a collaborator on the invoices app."

What a collaborator can do

Everything development-shaped on that one app:

  • deploy it, redeploy it, roll it back, and open previews;
  • read its deploy history, build logs and live logs;
  • add and update its secrets;
  • work against its database with their own personal development schema;
  • map a domain they registered onto it;
  • ask for a diagnosis when something breaks.

What stays with the owner

  • Adding and removing collaborators.
  • Deleting the app, transferring it to someone else, and rotating its sign-in settings.

A collaborator can see who else is on the app, but only the owner changes the list.

Code repository access

The app's code lives in your company's GitHub organization, and a collaborator needs push access to it. That access is granted from the GitHub username on their Ghosty profile:

ghosty profile --github <their-github-username>
  • If they have already published their username, the invitation goes out the moment you add them — GitHub emails it, and they accept it once.
  • If they haven't, the collaborator shows as waiting for their GitHub username. Ask them to run the command above; the access is then granted automatically, with nothing more for you to do.
  • If a grant fails (a mistyped username, for example), the app's Collaborators panel says why and offers Retry — the same as running ghosty collaborators add <email> again.

Owners need the same username published: it's how you get push access to your own app's repository when it's created. If you own an app and never received a repository invitation, publish your username and run ghosty provision --force for that app.

Remove a collaborator

ghosty collaborators remove sam@company.com

Or Remove in the console's Collaborators panel. Their access to the app ends immediately, and their push access to the app's code repository is withdrawn as part of the removal. Nothing they built is deleted, and you can add them back at any time.

Removing someone from the workspace ends everything at once: their access to every app they collaborated on, their push access to those code repositories, and their personal access to the Ghosty database.

Good to know

  • Collaborators don't travel when an app is transferred to another workspace — re-invite them there.
  • An app can have up to 50 collaborators.
  • Adding someone twice is harmless: it's the same command you use to retry a repository invitation.