Skills Bundles

A Skills Bundle points at a GitHub connection and a directory of agentskills.io-format skills within one of its repositories. Firetiger fetches those skills and exposes them to your organization’s agents on the read-only /n (/run/skills) mount, alongside the built-in library skills. The resource stores configuration only — credentials live on the referenced connection, and skill content is fetched at agent runtime.

Service: firetiger.skills_bundles.v1.SkillsBundlesService

Resource name pattern: skills-bundles/{skills_bundle_id}

Access: Read-write

Resource type: SkillsBundle

The referenced connection must be a GitHub connection; CreateSkillsBundle and UpdateSkillsBundle reject any other connection type with INVALID_ARGUMENT. A built-in skill of the same name always takes precedence over a repository-authored one.

Example flow

1. Register a skills bundle for a runbooks repository

curl -X POST "https://api.cloud.firetiger.com/firetiger.skills_bundles.v1.SkillsBundlesService/CreateSkillsBundle" \
  -u "$USERNAME:$PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{
    "skills_bundle_id": "team-runbooks",
    "skills_bundle": {
      "display_name": "Team Runbooks",
      "connection": "connections/acme-github",
      "repository": "acme/runbooks"
    }
  }'
{
  "skillsBundle": {
    "name": "skills-bundles/team-runbooks",
    "displayName": "Team Runbooks",
    "connection": "connections/acme-github",
    "repository": "acme/runbooks",
    "directory": "skills",
    "enabled": true,
    "createTime": "2026-06-20T14:30:00Z",
    "updateTime": "2026-06-20T14:30:00Z"
  }
}

The server fills directory (defaults to skills) and enabled (defaults to true).

2. List skills bundles

curl -X POST "https://api.cloud.firetiger.com/firetiger.skills_bundles.v1.SkillsBundlesService/ListSkillsBundles" \
  -u "$USERNAME:$PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{"page_size": 25}'
{
  "skillsBundles": [
    {
      "name": "skills-bundles/team-runbooks",
      "displayName": "Team Runbooks",
      "connection": "connections/acme-github",
      "repository": "acme/runbooks",
      "directory": "skills",
      "enabled": true,
      "createTime": "2026-06-20T14:30:00Z",
      "updateTime": "2026-06-20T14:30:00Z"
    }
  ],
  "nextPageToken": ""
}

Methods

Method Description
CreateSkillsBundle Register a new skills bundle
GetSkillsBundle Retrieve a skills bundle by name
UpdateSkillsBundle Update an existing skills bundle
DeleteSkillsBundle Soft-delete a skills bundle
ListSkillsBundles List skills bundles with filtering and pagination
ListSkillsBundleSkills Resolve the skills discoverable in a provider’s repository
PreviewSkillsBundleSkills Resolve the skills a repository configuration would expose, without saving

CreateSkillsBundle

Register a new skills bundle. The referenced connection must be a GitHub connection.

POST /firetiger.skills_bundles.v1.SkillsBundlesService/CreateSkillsBundle

Request body

Field Type Required Description
skills_bundle_id string Yes ID for the new provider (alphanumeric, hyphens, underscores)
skills_bundle SkillsBundle Yes The provider to create

Example

curl -X POST "https://api.cloud.firetiger.com/firetiger.skills_bundles.v1.SkillsBundlesService/CreateSkillsBundle" \
  -u "$USERNAME:$PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{
    "skills_bundle_id": "platform-skills",
    "skills_bundle": {
      "display_name": "Platform Skills",
      "connection": "connections/acme-github",
      "repository": "acme/platform",
      "directory": "agent-skills",
      "branch": "main"
    }
  }'

GetSkillsBundle

Retrieve a skills bundle by name.

POST /firetiger.skills_bundles.v1.SkillsBundlesService/GetSkillsBundle

Request body

Field Type Required Description
name string Yes Resource name of the provider

Example

curl -X POST "https://api.cloud.firetiger.com/firetiger.skills_bundles.v1.SkillsBundlesService/GetSkillsBundle" \
  -u "$USERNAME:$PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{"name": "skills-bundles/team-runbooks"}'

UpdateSkillsBundle

Update an existing skills bundle. update_mask is required and must list the settable fields to modify. Server-owned fields (name, create_time, update_time, delete_time) are ignored if present in the mask; a mask with no settable fields is rejected with INVALID_ARGUMENT.

POST /firetiger.skills_bundles.v1.SkillsBundlesService/UpdateSkillsBundle

Request body

Field Type Required Description
skills_bundle SkillsBundle Yes The provider with name set and updated fields
update_mask string Yes Comma-separated list of settable fields to update. Required; output-only paths are stripped, and an empty resulting mask is rejected.

Example

curl -X POST "https://api.cloud.firetiger.com/firetiger.skills_bundles.v1.SkillsBundlesService/UpdateSkillsBundle" \
  -u "$USERNAME:$PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{
    "skills_bundle": {
      "name": "skills-bundles/team-runbooks",
      "enabled": false
    },
    "update_mask": "enabled"
  }'

DeleteSkillsBundle

Soft-delete a skills bundle. The resource remains accessible via Get but is excluded from List results unless show_deleted is set, and its skills stop being served.

POST /firetiger.skills_bundles.v1.SkillsBundlesService/DeleteSkillsBundle

Request body

Field Type Required Description
name string Yes Resource name of the provider to delete

Example

curl -X POST "https://api.cloud.firetiger.com/firetiger.skills_bundles.v1.SkillsBundlesService/DeleteSkillsBundle" \
  -u "$USERNAME:$PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{"name": "skills-bundles/team-runbooks"}'

ListSkillsBundles

List skills bundles with optional filtering and pagination.

POST /firetiger.skills_bundles.v1.SkillsBundlesService/ListSkillsBundles

Request body

Field Type Required Description
filter string No Filter expression
order_by string No Field to sort by (e.g. create_time desc)
page_size integer No Maximum results per page
page_token string No Token for the next page of results
show_deleted boolean No Include soft-deleted providers

Example

curl -X POST "https://api.cloud.firetiger.com/firetiger.skills_bundles.v1.SkillsBundlesService/ListSkillsBundles" \
  -u "$USERNAME:$PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{"page_size": 25}'

ListSkillsBundleSkills

Resolve the agentskills.io skills currently discoverable in a provider’s repository directory, fetched live from GitHub. Use this to preview what a configured provider exposes to your agents. The full result set is returned in a single page (next_page_token is always empty).

POST /firetiger.skills_bundles.v1.SkillsBundlesService/ListSkillsBundleSkills

Request body

Field Type Required Description
parent string Yes Resource name of the provider whose skills to list (skills-bundles/{id})
filter string No Accepted for API consistency; ignored (the result set is small and returned in one page)
order_by string No Accepted for API consistency; ignored
page_size integer No Accepted for API consistency; ignored
page_token string No Accepted for API consistency; ignored

Response body

Field Type Description
skills DiscoveredSkill[] The skills found in the provider’s repository directory
next_page_token string Always empty; the full set is returned in one page

DiscoveredSkill

Field Type Description
name string The skill’s slug (its directory name)
description string One-line description from the SKILL.md frontmatter
body string Full SKILL.md content (frontmatter and body)
source_ref string Opaque origin, e.g. github://acme/runbooks@main/skills/deploy

Example

curl -X POST "https://api.cloud.firetiger.com/firetiger.skills_bundles.v1.SkillsBundlesService/ListSkillsBundleSkills" \
  -u "$USERNAME:$PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{"parent": "skills-bundles/team-runbooks"}'
{
  "skills": [
    {
      "name": "deploy",
      "description": "Run a production deployment and verify rollout",
      "body": "---\nname: deploy\ndescription: Run a production deployment and verify rollout\n---\n\n# Deploy\n…",
      "sourceRef": "github://acme/runbooks@main/skills/deploy"
    }
  ],
  "nextPageToken": ""
}

PreviewSkillsBundleSkills

Resolve the agentskills.io skills a repository configuration would expose, without creating or updating a provider. Backs the UI’s live preview as a user edits the connection, repository, directory, or branch before saving. Like ListSkillsBundleSkills, it returns the full set in a single page.

POST /firetiger.skills_bundles.v1.SkillsBundlesService/PreviewSkillsBundleSkills

Request body

Field Type Required Description
connection string Yes Resource name of the GitHub connection that grants repository access (connections/{id})
repository string Yes Repository holding the skills, in owner/repo form
directory string No Directory within the repository; defaults to skills when empty
branch string No Git ref to read from; empty uses the repository’s default branch

Response body

A skills array of DiscoveredSkill (the same skill shape as ListSkillsBundleSkills).

Example

curl -X POST "https://api.cloud.firetiger.com/firetiger.skills_bundles.v1.SkillsBundlesService/PreviewSkillsBundleSkills" \
  -u "$USERNAME:$PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{
    "connection": "connections/acme-github",
    "repository": "acme/runbooks",
    "directory": "skills",
    "branch": "main"
  }'

This site uses Just the Docs, a documentation theme for Jekyll.