Sharing Sessions
Session sharing lets you invite teammates to join your terminal sessions in real time. They can watch what you are doing, or — if you grant them permission — interact with the terminal alongside you.
This is useful for:
- Pair programming: Two developers working in the same terminal
- Live demos: Showing a colleague what a running process looks like
- Support and debugging: A senior engineer watching over a junior's session to help
- Asynchronous handoff: Share a session link so someone can pick up where you left off
Share Types
VibeControls supports two ways to share a session:
| Method | Description |
|---|---|
| Direct share | Invite a specific workspace member by name or email |
| Share link | Generate a URL that can be given to anyone |
Both methods let you control permissions — whether the recipient can only view, or can interact with the terminal.
Direct Share
Direct sharing invites a specific person in your workspace to join your session. They receive a notification and can click to open the session terminal.
Inviting a Workspace Member
- Open the session detail page
- Click Share (or the share icon in the terminal toolbar)
- Select Invite member
- Search for the member by name or email
- Choose a permission level:
- View — can see the terminal output but cannot type
- Interact — can type and use the terminal as if they were at the keyboard
- Click Invite
The invited member will see a notification in their VibeControls app. They can click Join session to open the terminal in their browser.
Managing Direct Shares
To see who currently has access to a session:
- Open the session detail page
- Click Share → Manage access
From here you can:
- Change a member's permission level
- Remove their access (they will be disconnected if currently active)
Share Links
Share links generate a URL that can be sent to anyone — even someone without a VibeControls account.
Generating a Share Link
- Open the session detail page
- Click Share → Create link
- Configure the link settings:
- Permission — View or Interact
- Expiry — how long the link remains valid (1 hour, 24 hours, 7 days, or no expiry)
- Password (optional) — require a password before accessing the session
- Max uses (optional) — automatically revoke the link after it has been used a set number of times
- Click Generate link
- Copy the URL
Share links look like: https://app.vibecontrols.com/vibecontrols/share/<token>
Expiry Settings
| Option | Description |
|---|---|
| 1 hour | Link expires 1 hour after creation |
| 24 hours | Link expires the next day |
| 7 days | Link valid for a week |
| No expiry | Link is valid until manually revoked |
For sensitive sessions, always set an expiry. For short demos or quick pair sessions, 1 or 24 hours is usually appropriate.
Password Protection
If you add a password, anyone using the link will be prompted to enter it before they can see the terminal. This is a simple layer of protection for links shared in public channels or emails.
Accessing a Shared Session
As a Workspace Member (Direct Share)
- Accept the notification in the VibeControls app
- The session opens in your browser
- Your permission level is indicated in the toolbar (view or interact)
Using a Share Link
- Open the URL in any modern browser
- If password-protected, enter the password
- If no VibeControls account is required, the terminal opens directly
- Your permission level is determined by the link settings
Shared session viewers can:
- See the full terminal output in real time
- Scroll through terminal history
- Copy text from the terminal
With Interact permission, viewers can also:
- Type commands
- Use keyboard shortcuts (Ctrl+C, Ctrl+Z, etc.)
- Navigate multiplexer panes (for tmux/Zellij sessions)
Requesting Control
When two people are in an interactive shared session, only one person should be actively typing at a time to avoid conflicts. VibeControls shows an indicator of who currently has focus.
If you are viewing with interact permission and want to start typing, click Request control in the toolbar. The session owner will see a prompt and can approve or decline.
Viewing Active Participants
In the session terminal view, a participants panel (people icon in the toolbar) shows:
- Who is currently connected to this session
- Their permission level
- Whether they are actively viewing
Revoking Access
Revoking a Direct Share
- Session detail → Share → Manage access
- Click Remove next to the member
- They are disconnected immediately
Revoking a Share Link
- Session detail → Share → Manage links
- Find the link and click Revoke
- The URL stops working immediately for anyone who has not already opened it
To revoke access for someone currently using a link, revoke the link — they will be disconnected within seconds.
Privacy and Security Notes
- Session content is transmitted over an encrypted connection — no terminal output is stored permanently as part of sharing.
- If you share a session that contains sensitive output (credentials, tokens), be careful about who you share it with.
- Set short expiry times on share links unless you have a specific reason for a longer duration.
- Interact permission effectively grants shell access to the underlying machine, with the privileges of the user that owns the session. The recipient can run any command that user can run — including reading files, modifying state, opening network connections, or escalating where the session user has permission to do so. Treat granting Interact like handing someone an authenticated SSH session, especially when sharing via a public link with users who do not have VibeControls accounts. Only grant Interact to people you trust to run commands as that user.
- You can always revoke all shares from the session's Share panel at any time.