Framework how-tos

How to Turn a Claude Code Agent Into a Shared Team Agent

Built a useful Claude Code agent? Learn how to share its skills, deploy it for your team, manage permissions and credentials, and govern it as a team agent.

Updated Sep 13, 2026

If your Claude Code agent works well for you and your team wants to use it too, you have two options: distribute the setup so everyone runs their own copy, or turn it into one shared agent the team can use. Claude already gives you good tools for the first. The second requires a different layer for identity, access, credentials, approvals and audit.

Key takeaways

  • You may not need a shared agent at all - if everyone can run their own Claude Code environment, project Skills, a plugin, a private marketplace or organization-provisioned Skills may be the simplest solution.
  • A shared agent is different from a shared Skill - once one agent serves multiple employees, it needs its own runtime, identity and explicit access to organizational systems.
  • Don't let one developer's credentials become the team's - decide whether each action runs as the employee, the agent, or through an approved organizational connection.
  • Add controls when the agent starts doing real work - permissions, approvals, ownership and audit matter once it takes actions, runs automatically or reaches sensitive business systems.

You built something useful in Claude Code

Maybe it researches prospects before a sales call. Maybe it creates tickets, reviews pull requests, updates documentation, checks production issues, or automates an internal workflow.

It works well enough that somebody else on your team asks: "Can I use it too?"

That sounds like a distribution problem. It usually isn't. There are actually two very different things you can do next:

Share the agent's setup

So other people can run similar agents themselves.

Share the agent itself

So the team can use one managed capability without recreating your local environment.

Claude Code has increasingly good tools for the first problem. Skills, plugins, project configuration, managed settings, and plugin marketplaces can all help distribute what you built.

The second problem is harder. Once an agent moves from "something I run" to "something our department relies on," you need to think about identity, credentials, permissions, ownership, approvals, changes, audit history, and who the agent is acting for.

This guide explains the difference and the main ways to move from a personal Claude Code agent to a shared team agent. First, here is what that move looks like in Contro1:

From a Claude Code agent to a shared Sales team agent: Claude Code interface recreated for illustration. Demo organization and data are fictional.

The first question: do you want to share the setup or share the agent?

Consider a Claude Code workflow that prepares an account brief before a sales meeting. On your laptop it might look like this:

  1. Person

    You

    Ask for a brief before the meeting.

  2. Agent

    Claude Code

    Runs on your laptop, in your session.

  3. Capability

    Your skill

    Knows the account brief workflow.

  4. Tools

    HubSpot + Apollo

    Reached with your own credentials.

  5. Result

    Output

    A meeting brief you review yourself.

You have already solved most of the difficult setup problems yourself. Your Claude environment knows the workflow. Your credentials are available. Your permissions determine what the agent can see. And you are there to review what it does.

Now imagine 40 salespeople want the same capability. There are two possible architectures.

Give every salesperson the same Claude setup

Each employee gets the relevant Skills, plugins, instructions, and integrations. Employee > their Claude > shared Skill > their tools. This is primarily a distribution problem.

Turn your agent into a departmental service

The organization operates a shared agent that employees can invoke from Slack, an internal interface, an API, or an automated schedule. Employee / Trigger > Shared Agent > Organizational tools. This is an agent operations problem.

Level 1: Share Claude Code Skills through your repository

For a small engineering team, the simplest solution may be all you need. Claude Code supports project-level Skills stored under:

Project Skills folder
./.claude/skills/

Commit those files to your repository and everyone working in the project can use the same Skills. Anthropic explicitly recommends project Skills as one way to distribute reusable workflows. A simple structure might look like:

Repository layout
my-project/
├── .claude/
│   └── skills/
│       └── deploy-production/
│           ├── SKILL.md
│           ├── checklist.md
│           └── scripts/
├── src/
└── README.md

This works particularly well when:

  • everyone works in the same repository
  • the capability belongs to that repository
  • the people using it are developers
  • your team already treats Git as the source of truth
  • each developer can run their own Claude Code environment

For many engineering teams, this is enough. But it becomes awkward when the Skill needs to work across many repositories or when the users are not developers.

A Sales Skill should not have to live inside your backend repository just because that is where someone originally built it.

Claude Code docs: Skills

Level 2: Package the workflow as a Claude Code plugin

Claude Code plugins are designed for functionality that should be reusable across projects or shared with other people.

A plugin can contain more than a Skill. It can package Skills, agents, hooks, MCP servers and other components together. Anthropic positions standalone .claude/ configuration for personal or project-level experimentation, and plugins for reusable, versioned capabilities shared across teams. Conceptually:

Plugin layout
sales-agent-plugin/
├── .claude-plugin/
│   └── plugin.json
├── skills/
│   ├── prospect-research/
│   └── meeting-brief/
├── agents/
├── hooks/
└── README.md

Now the capability is no longer tied to one repository. That solves an important problem:

But there is still a distribution question. How does everybody find it? How do they install it? How do you update it? That leads to the next layer.

Claude Code docs: Plugins

Level 3: Create an internal Claude Code plugin marketplace

Claude Code supports private plugin marketplaces specifically for distributing extensions across teams.

A marketplace gives you a centralized catalog, version tracking and a way to update plugins from a shared source. It can be hosted in GitHub, GitLab, another Git host, or a private repository. For example, an organization could maintain:

company-claude-marketplace
Engineering
  > production-debugging
  > code-review
  > deployment

Sales
  > prospect-research
  > meeting-preparation
  > CRM-update

Support
  > investigate-ticket
  > customer-summary

Employees can then install the capabilities relevant to their work instead of copying folders between machines. Claude Code can also configure marketplaces at project scope and recommend or enable plugins for collaborators through .claude/settings.json.

This is an important step toward organizational AI infrastructure. And it solves several real problems:

ProblemWhat a marketplace gives you
DiscoveryEmployees can see what exists.
DistributionThey do not have to manually copy Skills.
VersioningCapabilities have a controlled source.
UpdatesImprovements can be propagated.
ReusabilityThe same capability can work across multiple projects.

Anthropic itself describes a similar evolution: smaller teams can keep Skills in repositories, while larger environments can use plugins and internal marketplaces for broader distribution.

Claude Code docs: Plugin marketplaces · Anthropic: How we use Skills in Claude Code

Level 4: Provision Skills by organization or department

For organizations using Claude Team or Enterprise, Skills can also be provisioned centrally. Organization owners can distribute a Skill to everyone, while more specialized capabilities can be packaged as plugins and assigned to particular groups.

Anthropic gives a simple example: if Marketing has ten specialized Skills, they can be bundled into a plugin and assigned only to the Marketing group. This starts to look much more like an organizational capability model:

Organization
Organization

├── Engineering
│   ├── deploy
│   ├── incident-response
│   └── code-review
│
├── Sales
│   ├── prospect-research
│   ├── meeting-brief
│   └── CRM-update
│
└── Finance
    ├── invoice-analysis
    └── monthly-close

Administrators can also control whether employees are allowed to create their own Skills, share Skills with colleagues, publish them organization-wide, or share them with groups. Enterprise environments can optionally scan Skills and plugins for potentially malicious content.

For organizations whose goal is simply "We created a good Skill and want everybody in Sales to have it," this may already solve most of the problem.

Claude Help Center: Provision and manage Skills for your organization

The important transition: from shared Skill to shared agent

Imagine your Sales team has a Skill called Prepare Account Brief. It knows how to:

  • find the upcoming meeting
  • retrieve the account from HubSpot
  • research the company
  • retrieve contacts from Apollo
  • summarize previous interactions
  • generate a meeting brief

Sharing those instructions is relatively easy. Operating that workflow on behalf of an entire department introduces a different set of questions.

Whose identity is the agent using?

If Sarah asks for an account brief, should HubSpot see the request as coming from Sarah? Or from a shared company integration? Or from the AI agent itself? Those choices have very different security implications.

Whose credentials does it use?

Your original agent probably works because your environment is already authenticated. That model does not scale.

A departmental agent may need:

Per-user authorization
Sarah
   ↓
Shared Sales Agent
   ↓
Sarah's HubSpot authorization

David
   ↓
Same Sales Agent
   ↓
David's HubSpot authorization

For some actions, the organization may intentionally use a shared service account instead. The important part is that this becomes an explicit policy decision rather than an accidental consequence of whoever originally configured the agent.

Permissions become contextual

A personal agent inherits a simple permission model: "Whatever I can do, my agent can probably do." That becomes dangerous when the agent is shared.

A Sales agent might be allowed toBut not, or only with approval
Read HubSpot contactsDelete HubSpot contacts
Create a draft emailSend the email (requires approval)
Issue a refund below $100 (Support agent)Anything larger (needs a manager)

The permission model changes from a single question to a set of questions:

Personal agent
Can this integration access HubSpot?
Shared agent
Who is asking?
Which agent is acting?
Which action is being requested?
Which account will be used?
What department does this agent belong to?
Does this action require approval?

This is where a shared agent starts looking much less like a developer tool and much more like an organizational system.

Don't give the agent one giant permission. A useful principle is to govern actions, not just integrations. Instead of "Agent can access HubSpot", think:

Action-level permissions
hubspot.contact.read           → allow
hubspot.contact.update         → allow
hubspot.deal.update            → require approval
hubspot.contact.delete         → deny

This gives the agent enough freedom to be useful without treating access to an application as permission to perform every possible action inside it.

A shared agent also needs an owner

Your personal Claude Code setup has an obvious owner: you. A production agent does not.

  • If a Sales agent begins creating incorrect CRM records, who is responsible for disabling it?
  • Who decides which tools it can access?
  • Who approves a change to its behavior?
  • Who receives an escalation when the agent cannot complete an action?

A useful organizational model looks more like:

Agent record
Agent:            Sales Meeting Assistant
Department:       Sales
Business owner:   VP Sales Operations
Technical owner:  AI Platform Team

Allowed capabilities:
  HubSpot read
  Apollo read
  Calendar read
  CRM note creation

Sensitive actions:  Require approval
Status:             Active

Changes become production changes

There is another subtle problem. Suppose someone improves the prospect-research Skill. For their personal Claude environment, they can change it and test the new version immediately.

But if 70 salespeople depend on that Skill, the same update is now effectively a production change. You may need to know:

  • who changed it
  • what changed
  • which agents use it
  • which department receives the new version
  • whether the change needs review
  • whether it can be rolled back
  • when it reached production

Plugin marketplaces solve an important part of the distribution and versioning problem. They do not eliminate the organizational decision:

Shared agents may need to run without a user sitting in front of Claude

This is another major dividing line. A personal Claude Code workflow is often interactive. You invoke Claude. Claude performs the task. You review the result.

A departmental agent may need to work differently. For example:

  1. Trigger

    30 minutes before every customer meeting

    A schedule starts the run. Nobody asks.

  2. Agent

    Sales Meeting Agent

    Runs as infrastructure, not on a laptop.

  3. Read

    Calendar + HubSpot

    Finds the meeting and the account.

  4. Work

    Research prospect, generate brief

    The same capability you built.

  5. Deliver

    Send it to the salesperson

    Arrives before the call starts.

Nobody manually asks the agent to start. The workflow may be triggered by a schedule, webhook, event, application or another agent. Now the agent needs to be available as infrastructure, not just available on the laptop of the person who created it.

The architecture changes

A personal agent often looks like this:

  1. Person

    Developer

    Starts and watches the work.

  2. Agent

    Claude Code

    The agent runtime.

  3. Capability

    Skills + tools

    What it knows how to do.

  4. Access

    Developer credentials

    Whatever the developer can reach.

  5. Systems

    SaaS / internal systems

    Where the work lands.

A shared organizational agent needs more structure:

  1. Start

    Employee / Event / Application

    Anyone or anything can invoke it.

  2. Agent

    Agent

    The capability you built.

  3. Who

    Identity context

    Which agent, acting for whom.

  4. Rules

    Policy + permissions

    What this request may do.

  5. Human

    Approval when required

    The right person for sensitive actions.

  6. Access

    Authorized credential

    The account chosen by policy, not by accident.

  7. Systems

    Business systems

    Where the action runs.

  8. Record

    Audit trail

    What happened and why.

The intelligence of the agent may barely change. The infrastructure around it changes dramatically.

What should you use?

There is no reason to introduce an enterprise control layer when Git solves the problem. The right architecture depends on what you are trying to share.

What you needA good starting point
Share a Skill within one repository.claude/skills + Git
Reuse capabilities across repositoriesClaude Code plugin
Distribute many capabilities internallyPrivate plugin marketplace
Give approved Skills to the entire organizationOrganization-provisioned Skills
Give specialized capabilities to departmentsGroups + plugins
Let multiple people operate one shared agentDeploy the agent as a service
Run the agent automaticallyHosted/event-driven agent runtime
Give a shared agent access to business systemsIdentity + credential architecture
Restrict what the agent can doAgent-level policies and permissions
Require a human for sensitive actionsApproval layer
Know what the agent did and whyCentral audit trail

When Claude Code distribution is enough

If five engineers want to use the same code-review workflow, you probably do not need an agent control plane. Put the Skill in Git or package it as a plugin.

If Marketing wants every employee to have the same brand-writing Skill, centrally provision it. If multiple teams need a catalog of reusable Claude extensions, build an internal marketplace. Those are good solutions.

You should start thinking about a control layer when the agent begins to act against real business systems, serve multiple employees, use organizational credentials, perform actions automatically, or make decisions that the organization needs to supervise.

Where Contro1 fits

Contro1 sits at this transition. Claude Code, Skills and plugins can define what an agent knows how to do. Contro1 provides the operational layer around the agent once that capability needs to work inside an organization.

Instead of treating an agent as somebody's local automation, the organization can give it an identity, an owner, a place in the organizational hierarchy, permissions, approval policies and an audit trail. A request can then carry context such as:

Request context
Organization:       Acme
Agent:              sales-meeting-agent
Business function:  Sales
Acting for:         sarah@acme.com
Requested action:   hubspot.contact.update
Connection:         Sarah's HubSpot authorization
Policy:             Allowed with manager approval
Approver:           Sales Operations
Trace:              req_94f...

That changes the model from "Give everybody my agent." to "Make this an organizational agent."

The difference is important. Sharing tells people how to run the capability. Operational control determines how that capability is allowed to participate in the business.

A practical migration path

You do not have to redesign everything on day one. A sensible progression is:

Stage 1: Prove the workflow personally

Build it in Claude Code. Iterate quickly. Do not over-engineer governance before you know the agent is useful.

Stage 2: Extract the reusable capability

Move repeated instructions into Skills. Separate company knowledge, procedures and tool interactions from ad-hoc prompts.

Stage 3: Share it with a small group

Use project Skills or a plugin. Watch how other people use it. This often reveals assumptions that were invisible when only the creator used the agent.

Stage 4: Create a controlled distribution mechanism

Use a plugin marketplace, organization-provisioned Skills or departmental groups. Establish an owner and versioning process.

Stage 5: Separate user identity from agent identity

Do not assume the agent should inherit the credentials of the developer who created it. Determine who the agent is acting for and which credentials should be used for each action.

Stage 6: Define action-level permissions

Do not stop at "The agent has access to Salesforce." Define what it can actually do: salesforce.account.read, salesforce.contact.read, salesforce.opportunity.update, salesforce.opportunity.delete. Different actions may need different policies.

Stage 7: Add approvals around consequential actions

Reading a CRM record and deleting it should not necessarily have the same control model. Let routine actions execute automatically. Escalate sensitive actions to the appropriate business owner.

Stage 8: Make the agent observable

Record who invoked it, which agent acted, which systems it accessed, what actions it requested, which policies were applied, who approved sensitive actions, and what actually happened.

The key idea

Building a useful agent is becoming easier. Sharing a Skill is becoming easier too. The harder problem begins after other people start depending on it.

A personal Claude Code agent can rely on one person's environment, credentials, judgment and permissions. A departmental agent cannot.

  • It needs an organizational identity.
  • It needs an owner.
  • It needs controlled access to capabilities.
  • It needs to know which employee it is acting for.
  • It needs policies for sensitive actions.
  • And the organization needs a record of what it did.

From personal Claude Code agent to organizational agent

Claude Code helps you build the capability. Contro1 helps the organization operate it.

Give production agents identity, ownership, permissions, approval hierarchy, escalation and audit trails, so the useful agent you built for yourself can safely become an agent your team depends on.

Frequently asked questions

Can I share Claude Code Skills with my team?

Yes. For repository-specific workflows, Claude Code Skills can be stored in .claude/skills/ and committed to version control. For capabilities that need to work across projects, Anthropic recommends packaging them as plugins.

Can an organization centrally distribute Claude Skills?

Yes. Claude Team and Enterprise organizations can provision Skills centrally. Skills can also be scoped to groups by packaging them into plugins and assigning those plugins to the relevant group.

How do I share Claude Code plugins internally?

Claude Code supports private plugin marketplaces. Organizations can host a marketplace in a private Git repository and use it to distribute versioned plugins to employees.

Is sharing a Claude Code Skill the same as deploying an agent?

No. Sharing a Skill distributes instructions and capabilities so other Claude environments can use them. Deploying a shared agent means operating one agent that multiple users, applications or events can invoke. That introduces additional requirements around hosting, user identity, credentials, permissions and auditing.

Should every employee have their own Claude agent?

Not necessarily. Some capabilities are best distributed to every employee as Skills or plugins. Other workflows are better implemented as shared departmental agents, particularly when the workflow needs to run automatically, connect to organizational systems, maintain centralized behavior or enforce common policies.

Should a shared agent use a service account or each employee's credentials?

It depends on the action. An agent performing an organization-owned background process may appropriately use an organizational connection. An agent acting on behalf of a specific employee may need delegated or per-user authorization so the target system can preserve that person's permissions and identity. The important requirement is to make the choice explicit rather than automatically reuse the credentials of whoever originally built the agent.

When do I need governance around a Claude Code agent?

Usually when the agent stops being a personal productivity tool and begins participating in a real business process. Signals include multiple employees relying on it, access to sensitive systems, write actions, scheduled or autonomous execution, shared credentials, approval requirements, or a need to reconstruct what the agent did later.

Related resources