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.
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.
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:
| Status | Description |
|---|---|
| Syncing | Changes are being pushed and PRs are being created |
| Synced | All pull requests created or updated successfully |
| Failed | An error occurred — see the error message details |
| Not Synced | Workspace 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.
- Checkbox — select or deselect a repository for this sync
- Selected repositories show their normal action ("Open New PR", "Update PR", etc.)
- Unselected repositories show "Skip" and are excluded from the sync
- 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.
Workspace Statuses
On the Workspaces page, each card shows one of these status pills:
| Status | Description |
|---|---|
| Active | Your active workspace |
| Modified | The workspace has changed files |
| Idle | The 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.
Navigation and User Preferences
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.
