Skip to content

Library Sync

Library Sync connects CompanyGPT with Git repositories and pulls skills, agents and prompts from there into CompanyGPT. This lets you version the content library, review it as a team and move it between environments. For repositories you own, companyADMIN also writes changes back to Git.

You find it under Content → Library Sync. GitHub and self-hosted Git servers (GitLab, Gitea or plain Git) are supported.

The list shows every connected repository:

ColumnContent
RepositoryRepository and branch
DetectedNumber of detected skills, agents and prompts
Last syncedWhen (relative), with which commit and by whom
StatusOK, Error or Never; plus Up to date, Update available or Update status unknown, and the number of errors if any

Use Search repository to find a repository. Sync all syncs all repositories one after another. Clicking a row opens the detail page.

Add repository opens a page with four steps: Clone → Select paths → Configure → Save & sync.

  1. Clone: choose the Git server (GitHub or Self-hosted (GitLab, Gitea, plain git)) and enter the repository. For GitHub you can also paste a full URL; it is split into repository, branch and path automatically. Under Authentication you choose:

    • PAT – a personal access token. Leave the field empty for public repositories.
    • SSH deploy key – companyADMIN generates a key pair (Generate SSH key). Add the Public key to the repository as a deploy key with write access (on GitHub: “Allow write access”).

    For a self-hosted server, also enter the HTTPS base URL (for PAT) or SSH host and SSH port (for SSH).

  2. Select paths: pick the top-level folders to sync. Only these folders are downloaded, scanned and kept in sync. The selection cannot be changed later; to change it, remove the repository and connect it again.

  3. Configure:

    • Analyze with AI – only appears if an analysis model is set up for your environment. A language model (Analysis model) suggests, based on the file tree, which folders contain skills, agents and prompts. The suggestion only pre-fills the structure; nothing is synced by it.
    • Detected content – the number of detected skills, agents and prompts.
    • Structure (sources) – one Kind and one Path per entry, for example agents or library/agents. Use Add source to add further paths.
    • Visibility – the default visibility of imported content: Owner / system (default), Public (all users) or Specific groups. With Owner / system (default) no user sees the imported content until you choose Public or groups.
    • We own this repo (allow write-back/up-sync) – allows companyADMIN to write changes from CompanyGPT back into the repository. With a PAT the token needs write access (on GitHub the repo scope); with SSH the deploy key writes back.
  4. Save & sync: the Save button creates the connection. Nothing is synced yet; the repository shows Never afterwards. You start the first sync with a preview on the detail page with Sync.

Sync on the detail page first shows a preview (Review & apply changes): what will be created, updated, deleted or stay unchanged. Nothing is written until Confirm & apply. Afterwards the Sync result shows what actually happened, and Notes list what was skipped, such as tools your environment blocks, unreachable MCP servers or skill names that cannot be resolved.

Older prompt versions and shares that people made in CompanyGPT are kept on sync. An agent’s avatar, conversation starters and uploaded files are only kept if the YAML file in the repository does not set the field itself. Exported agents (see Export existing content) have these fields in their YAML file.

For skills, Library Sync searches the given path at any depth: every folder that contains a SKILL.md becomes one skill. Other text files in the same folder (e.g. references/ or scripts/) are imported with the skill; binary files are skipped. The name in SKILL.md identifies the skill – if a name occurs twice, only the first one is imported.

Adding the ready-made skills from innFactory

Section titled “Adding the ready-made skills from innFactory”

The ready-made skills live in the public repository innFactory-AI/company-ai-stack-skills and can be connected directly – no token needed:

FieldValue
RepositoryinnFactory-AI/company-ai-stack-skills, branch main
Structure (sources)type skill, path de/skills (German skills) or en/skills (English skills)
We own this repooff

Connect only one language: the German and English versions use the same skill name. You can also paste https://github.com/innFactory-AI/company-ai-stack-skills/tree/main/en/skills as the repository; branch and path are filled in for you. Sync fetches new and changed skills; there is no automatic schedule.

The detail page has the tabs Overview, Content, Runs, Exclude and Settings, plus a danger zone.

Status, Source, Branch, Selection (the loaded folders), Last run, whether there is a New version in the repository, and the amount of Content. Errors of the last run are shown right on the page; versions already in CompanyGPT stay unchanged.

Every entry of the repository with Name, Type, Path and Status:

StatusMeaning
SyncedSame as the repository
Changed in companyGPTEdited in CompanyGPT since the last sync
ConflictChanged both in CompanyGPT and in the repository. With We own this repo, write-back skips such entries, see Compare with git
ErrorCould not be applied
ExcludedNo longer synced
Deleted in companyGPTDeleted in CompanyGPT, still present in the repository. The next sync creates the entry again, without its earlier shares and favourites. To remove it for good, use Exclude or remove it in the repository

Below follows Orphaned (N): content marked with this repository that the sync no longer tracks. It is never deleted automatically.

Compare with git checks what differs between the repository and CompanyGPT and changes nothing. Detect changes (DB ↔ Git) summarizes the result:

  • repo newer – changed in the repository; the next sync applies it
  • changed in the app – changed in CompanyGPT
  • in sync
  • file(s) do not parse – files that cannot be read; the version in CompanyGPT is kept

For repositories with We own this repo you write agents and skills changed in CompanyGPT to Git with Write back (up-sync): companyADMIN first shows a preview of the files, and Commit & push writes them. companyADMIN creates a commit with a descriptive message and lists the files written. If the branch in the repository has new commits in the meantime, sync first and then try again. companyADMIN does not write prompts back.

Write-back skips entries with Conflict; left alone, they stay in that state. To resolve such an entry, tick Include conflicting units (overwrites the git-side change) before Write back (up-sync). The change in the repository is then replaced by the version from CompanyGPT.

For repositories with We own this repo, Export existing content writes agents and skills that were created in CompanyGPT and never synced with any repository into the repository for the first time. Pick single entries or Select all, check the files with Preview and write them with Commit & push.

In the repository each agent then lives as one YAML file, including its instructions, tools and settings, in the configured folders.

Exported agent as a YAML file in the GitHub repository

Every sync with Started, Result, Changes, By and Commit, including aborted ones. A run shows the result per entry.

Here you take single entries out of the sync without changing the repository:

  1. Select the entries.
  2. Decide what happens in CompanyGPT: Keep in companyGPT (release as normal content) or Delete from companyGPT on the next sync.
  3. Check the Preview and click Save exclusions. They take effect with the next sync.

Include again takes an entry back into the sync. If a sync has already run since the exclusion, this is not a simple undo:

  • After Keep in companyGPT (release as normal content), the next sync takes the entry over again and overwrites changes from CompanyGPT without first showing them as Edited in companyGPT.
  • After Delete from companyGPT on the next sync, the next sync creates a new entry.

You change the branch, token, sources, visibility and We own this repo here. The repository itself and the folder selection from Select paths cannot be changed; remove the repository and connect it again instead. Changes to sources and visibility only take effect with the next sync; after saving, companyADMIN offers to sync right away.

Remove repository … in the danger zone first shows what happens to each entry in CompanyGPT:

  • Keep – all entries stay in CompanyGPT as normal, freely editable content. They then count as created manually; only superadmins may change their visibility afterwards.
  • Delete the content – the selected entries are deleted. Entries changed in CompanyGPT, shared, or used by other agents are not preselected; agents that people marked as a favourite are. Entries that are not deleted stay, marked as orphaned.

To confirm, type the repository’s name. If a sync is running, removal is possible once it has finished.

Synced content carries the badge synced under Content and visibility, and additionally modified in LibreChat after a change in CompanyGPT. The visibility comes from the repo default. If you change it on a single entry, companyADMIN manages that entry individually until you reset it to the repo default.