CodeCargo logo

Platform

Workspaces

A workspace in CodeCargo is a way to directly interact with your code assets in GitHub.

  • Each workspace contains a collection of files, GitHub repositories, or other assets
  • All assets in a workspace serve as context to the GenAI agent
  • After a workspace is created, you can add or remove files, repositories, or other assets
  • Your GenAI Agent can make edits across multiple files and repositories, and then create PRs
  • After you open a PR, you can keep editing the workspace and push additional commits to the PR's branch (via Manage Pull Requests / Update PR)
  • Assets loaded into a workspace can be from different Projects
  • Workspaces are tied to a user and a single organization

Creating a Workspace

You can create a workspace in two different ways:

Option 1 - Click on the button located on the top-right-corner of the screen labeled "X repo(s) in workspace" to open the workspace panel, then click + (New workspace) at the top of the panel. Enter a name for your workspace, then click "Create Workspace."

Option 2 - Open the workspace panel the same way, click Manage to go to the Workspaces page, then click + New, enter a name, and click "Create Workspace."

The workspace panel shows your active workspace: its repositories with their full file trees, the files you've changed, and buttons to open the editor (Show Editor) or go to the Workspaces page (Manage). Click the workspace name to switch to another workspace.

The workspace panel for the CVE scan in build workflows workspace: 2 repos and 2 modified files, the ledger-service and payments-api file trees with deploy.yml and release.yml marked M, and the Show Editor and Manage buttons

Direct Workspace Access

You can access specific workspaces directly through URLs using the format /orgs/{orgId}/editor/{changesetId}. This enables:

  • Multi-tab workflows - Work on multiple workspaces simultaneously in different browser tabs
  • Shareable workspace links - Send direct links to specific workspaces to team members
  • Bookmarking - Save workspace URLs for quick access to ongoing work

Direct URL access loads the workspace independently of your currently active workspace, allowing you to switch between different workspaces without affecting each other.

Workspace Independence

Workspaces accessed via direct URLs operate independently from your active workspace. Changes made in one workspace won't affect another, even when working in multiple tabs simultaneously.

Adding Files, Repositories and other Assets to a Workspace

You can add the following items to a Workspace:

  • Files
  • GitHub Repositories
  • Building Blocks
  • Service Catalog entities

In general, to add any of the above to a workspace, navigate to the item that you'd like to add, click the + icon directly to the left of the item, and it will be added to the workspace. You can then remove the item by clicking on the blue - icon in the same location.

Files

To add a file to the workspace, navigate to a project, then to the Guardrails section, and click the + icon directly to the left of a workflow file. The icon will turn blue indicating that the file has been added to the workspace, and the workspace button in the top-right-corner of the dashboard will update.

Quick Tip

Adding a file to your Workspace also adds all contents from the GitHub repository that it is defined in.

Repositories

When you add a Repository to your workspace, all contents of the repository will be added to the workspace. To add a repository to the workspace:

From the Organization Menu: click on "repositories," and click the + icon to the left of any repository that you would like to add to the workspace.

From a Project: click on "Repositories" in the Project dashboard, then click the + icon to the left of any repository that you would like to add to the workspace.

Building Blocks

Navigate to Building Blocks from the Organization menu. Click the type of Building Block you'd like to add to the workspace (Workflows or Actions). To the left of the Building Block, click on the + icon to the left of the Building Block to add it to your workspace.

Service Catalog Entities

Navigate to a Project with an active Service Catalog, make sure its open in split or table view, then click on the + icon to the left of the Service Catalog entity that you'd like to add to the workspace.

Files

Open the editor and use the file tree to browse any file in a linked repository — the tree shows the entire repository, not just files already in your workspace. Every file opens fully editable. Viewing a file doesn't change anything about your workspace; only once you make an actual edit does that file, and the repository it belongs to, join the workspace automatically.

This means there's no separate step to "add" a file to your workspace anymore — just start editing, and CodeCargo takes care of the rest. You can also create a brand new file directly from the tree using the New file action in the tree toolbar.

Quick Tip

Editing a file also brings in the full contents of the GitHub repository it's defined in, since that's the context the GenAI agent uses.

GenAI Context

All files, repositories, Building Blocks, and Service Catalog entities in the workspace are used as context for the GenAI Editor. This means the active GenAI Agent will be able to read all of those entities and make code changes, perform analysis, or other tasks based on the file contents and their relationships.

This enables advanced use-cases such as refactoring an API and updating all software that calls it, migrating CI/CD pipelines from one framework to another, and more.


Syncing Changes and Creating Pull Requests

After editing code in the GenAI Editor, you need to sync your workspace to push changes back to GitHub as pull requests. This is the primary way changes flow from CodeCargo into your repositories.

Workspace lifecycle. Add repositories, files, Building Blocks, or catalog entities; edit them yourself or with the GenAI agent; open the Sync Workspace modal; CodeCargo opens one pull request per repository with changes. Keep editing and use Update PR to push more commits. Each repository's pull request goes from none yet, to open, to merged or closed, which then moves it into the modal's pull request history.AddRepos, files,blocks, entitiesEditYou or theGenAI agentSync WorkspacePick the reposto pushPull requestsOne per repowith changesKeep editing, then Update PRPull request, per repositoryNo PR yetAction: Open New PROpenUpdate PR adds commitsMerged or closedListed under previouspull requests
From first edit to merged pull requests. You can keep editing after the PRs open and push more commits with Update PR.

Starting a Sync

In the GenAI Editor, click the Create Pull Request(s) button at the top of the editor. If pull requests already exist for your workspace, the button reads Manage Pull Requests instead.

This opens the Sync Workspace modal, which lists the repositories in your workspace. Each row shows:

  • Repository — the repository name and its target branch
  • Changes — lines added/removed and the number of changed files
  • PR — a badge for the current pull request, if any, linking to it on GitHub
  • Action — what will happen: "Open New PR", "Update PR", "No Changes", or "Skip"

Creating Pull Requests

Click Open Pull Request(s) to push your changes. (Repositories with an existing open PR show an Update PR action; when every selected repository already has one, the button reads Sync Workspace.) CodeCargo creates or updates one pull request per repository that has changes. Repositories without modifications are skipped.

While syncing, each repository row shows a spinner. When complete, the modal shows Sync Complete and PR badges appear with links to the pull requests on GitHub.

Multi-Repository Sync

A single workspace can span multiple repositories. When you sync, CodeCargo handles all repositories in one operation — creating or updating pull requests across each repository that has changes. This is especially powerful for cross-repo refactors and coordinated migrations.

Sync Status

After initiating a sync, you can track progress on the Workspace Sync page:

StatusDescription
SyncingChanges are being pushed and PRs are being created
SyncedAll pull requests created or updated successfully
FailedAn error occurred — see the error message details
Not SyncedWorkspace has not been synced yet

The sync page also shows summary statistics: creation date, last changed date, repositories changed, files changed, and lines added/removed.

Branch Selection

Each repository in your workspace targets a branch. Click the branch indicator on a repository to change the target branch before syncing. Changing the branch clears the local file cache so fresh content is pulled.


Selective Repository Sync

When syncing a workspace with multiple repositories, you can choose which repositories to include in the sync operation. Every repository with changes starts out selected.

The Sync Workspace modal with numbered callouts: 1 the checkbox on the payments-api row, 2 its Open New PR action, 3 the Skip action on the unselected ledger-service row, 4 the Open Pull Request button
  1. Checkbox — select or deselect a repository for this sync
  2. Selected repositories show their normal action ("Open New PR", "Update PR", etc.)
  3. Unselected repositories show "Skip" and are excluded from the sync
  4. The button and the line beside it say what the sync will do, e.g. "Will open a new pull request"

This is useful when you've made changes across multiple repositories but only want to create pull requests for a subset of them, or when you want to stagger your pull request creation across different repositories.

Sync Filtering

Only repositories with actual changes can be selected for syncing. Repositories without modifications are automatically excluded and cannot be selected.

Managing Workspaces

Organization-Level Workspaces View

Navigate to Workspaces from the organization sidebar to see all workspaces across your organization. This page provides:

  • Active workspace — your active workspace in a highlighted card at the top (see Active Workspace)
  • Search — find workspaces by name
  • Filters — show only workspaces that are Modified or have Open PRs
  • Workspace cards — each workspace's name, status, repository and file counts, line changes, last changed date, and pull request pills (open, merged, closed, and repositories with unsynced changes). View repos expands the per-repository detail.
The Workspaces page: the active CVE scan in build workflows card with Open Editor, the Filter menu open with Modified and Open PRs, and cards for four other workspaces showing Modified or Idle status and open, merged, closed or unsynced pills

Workspace Statuses

On the Workspaces page, each card shows one of these status pills:

StatusDescription
ActiveYour active workspace
ModifiedThe workspace has changed files
IdleThe workspace has no pending changes

Active Workspace

Your currently active workspace appears in a highlighted card above the workspace list. From here you can:

  • Open Editor — open the workspace in the GenAI Editor, where Create Pull Request(s) syncs changes to GitHub
  • View Sync (menu, once the workspace has been synced) — open the Workspace Sync page
  • Stash Workspace (menu) — deactivate the workspace without deleting it
  • Delete (menu) — permanently remove the workspace

Stashing and Switching

You can only have one active workspace at a time. Use Stash Workspace to deactivate your current workspace, then click Make Active on another workspace to switch. Stashed workspaces retain all their files and changes.

CodeCargo automatically manages your navigation preferences and workspace state:

  • Recent Organization: Your most recently accessed organization is remembered and used for faster navigation
  • Smart Redirects: The platform automatically routes you to the most relevant page based on your recent activity
  • Workspace Persistence: Your active workspace and file states are preserved across browser sessions

When you return to CodeCargo, you'll be taken directly to your most recent organization and workspace, eliminating unnecessary navigation steps.

Agent workspaces

An agent run keeps its working files in a workspace that belongs to the organization, not to one person.

Deleting cancels the run

While the run is still in progress, only the run's driver or an organization admin can delete the workspace, and deleting it cancels the run. If the run is still stopping, try again in a moment. Once the run has finished, any member of the organization can delete it.

When you change that workspace yourself, your own GitHub access applies:

  • Saving a file, discarding unsynced edits, removing a file or repository, or syncing needs write access on that repository. A sync that includes a repository you can only read is refused as a whole, and names those repositories.
  • Opening a file that already exists does not need write access. Creating a new file does, because a later sync would push it.

The agent can still save and sync its own work.