Skip to content

Team Collaboration

Tentacular is designed for teams, not just individuals. Every enclave is a shared workspace where a team can build, deploy, and run tentacles together, with clear rules about who can do what and guardrails that protect critical work.

Enclave membership is managed through Slack channel events and owner commands. Joining a Slack channel does not automatically grant membership — the new user starts as a visitor. The enclave owner must explicitly add them as a member.

There are three roles in every enclave:

RoleHow You Get ItWhat It Means
OwnerYou are the Slack channel ownerAdministrative control over the enclave and everything in it
MemberThe owner added you via @kraken add @user or CLICollaborative access, scoped by the enclave’s permission preset
VisitorYou joined the channel but have not been added as a memberLimited access based on the enclave’s “other” permission bits (typically none)

A user can be a member of multiple enclaves simultaneously, with different roles in each. OIDC identity (your email and subject identifier) is the same across all enclaves, but your role varies per enclave.

Slack channel lifecycle events automatically drive enclave state:

Slack EventEnclave Effect
User joins channelUser becomes a visitor (no automatic membership)
User leaves channelUser is removed from members; their tentacles transfer to the enclave owner
Channel archivedEnclave frozen (no new deploys, cron paused, existing tentacles keep running)
Channel unarchivedEnclave unfrozen
Channel renamedDisplay name updated; enclave slug is immutable

The Kraken also runs periodic drift detection to reconcile Slack channel membership with enclave annotations, catching any events that were missed.

Tentacular uses a POSIX-like permission model. Permissions are defined at two layers, and both must pass for any operation to succeed.

Enclave (directory)
└── Tentacle (file)
  1. Enclave-level check — does the caller have the required permission on the enclave?
  2. Tentacle-level check — does the caller have the required permission on the specific tentacle?

Both must pass. A member with enclave read but no tentacle read cannot inspect a tentacle. An enclave owner is the exception: the enclave owner is a superuser who can perform any operation on any tentacle within their enclave, regardless of the tentacle’s individual permission settings.

BitEnclave MeaningTentacle Meaning
Read (r)List tentacles, view enclave info, see health and statusView tentacle details, logs, events, pods
Write (w)Deploy new tentacles into the enclave, change enclave settingsUpdate or redeploy a tentacle
Execute (x)Run tentacles in the enclave, trigger workflowsRun or restart a specific tentacle

Named presets cover the common access patterns. The Kraken uses plain language to set these — users never need to know the underlying mode string.

PresetModeOwnerMemberOtherUse Case
privaterwx------FullNoneNonePersonal enclave or sensitive work
member-readrwxr-x---FullRead + RunNoneMembers can view and run, but only the owner deploys
member-editrwxrwx---FullFullNoneDefault — full collaboration within the team
open-readrwxrwxr--FullFullRead-onlyVisitors (e.g., executives) can see what’s running
open-runrwxrwxr-xFullFullRead + RunVisitors can view and trigger tentacles

Default for new enclaves: member-edit. All registered members have full access; non-members see nothing.

Default for new tentacles: Inherited from the enclave’s default mode annotation.

The person who deploys a tentacle is its owner. Tentacle ownership matters when the tentacle’s mode is more restrictive than the enclave’s mode — for example, if a member deploys a private tentacle within an otherwise fully collaborative enclave.

RuleDetails
Deployer is ownerSet at deploy time, stored in tentacular.io/owner annotation
Owner can update their tentacleSubject to the tentacle’s mode bits
Enclave owner is superuserCan update or remove any tentacle, regardless of tentacle mode
Ownership transfers on member removalWhen a member is removed (via @kraken remove or leaving the channel), their tentacles automatically transfer to the enclave owner
Enclave owner can transfer ownershipTo any current member, via The Kraken or tntc

Teams interact with permissions through natural language, not mode strings or CLI flags. The Kraken provides structured owner commands alongside natural language understanding.

CommandWhat It DoesWho Can Run
@kraken add @userAdds the mentioned user as an enclave memberOwner only
@kraken remove @userRemoves the user; transfers their tentacles to the ownerOwner only
@kraken set mode <preset>Changes the enclave’s permission presetOwner only
@kraken membersLists owner, members, and current access levelAnyone
@kraken whoamiShows your role in this enclave (owner, member, or visitor)Anyone

Examples of what users say:

  • “Lock down this enclave so only our team can see it” → Kraken sets member-edit
  • “Let anyone in this channel see what’s running” → Kraken sets open-read
  • “Transfer the price-monitor tentacle to Bob” → Kraken calls enclave_chown
  • When Carol leaves the channel, Kraken automatically removes her and transfers her tentacles to the owner

Platform operators and advanced users can set permissions directly with tntc:

Terminal window
# Set enclave-level preset
tntc permissions set <enclave> --mode open-read
# Set tentacle-level preset
tntc permissions chmod member-read <enclave> <tentacle-name>

When someone who is not a registered member interacts in an enclave channel, The Kraken checks the enclave’s other permission bits:

  • other has no bits set (default): Kraken identifies the person as unregistered and offers to initiate the registration flow. The enclave owner is notified.
  • other has read bit set (open-read): Kraken answers read-only questions (status, health, “here’s what’s running”) but declines write or execute requests.
  • other has read + execute bits set (open-run): Kraken allows the visitor to also trigger tentacles.

A visitor can complete OIDC sign-in (to prove identity) without becoming a registered member. Registration as a full member requires the enclave owner’s approval.

These are two distinct steps:

  1. Authentication (OIDC sign-in): Proves who you are. Required for any interaction with The Kraken beyond passive channel membership.
  2. Registration (member enrollment): Grants access based on your identity. Requires the enclave owner to approve.

The Kraken handles both flows in-channel with OIDC device authorization links. No separate administrative UI is needed.

Bearer tokens bypass all permission checks and are reserved for platform operators. Regular users, AI agents, and The Kraken always use per-user OIDC tokens. This ensures the audit trail captures individual identity for every operation.

See Multi-Tenancy and Access Control for the full AAA framework.