Migration guide

Migrate from ChatGPT Work to Open Source Kortix

Migrate from ChatGPT Work step by step: move prompts, skills, connectors and memory onto open-source Kortix, in one git repo you own.

Migrating from ChatGPT Work onto an open-source platform means rebuilding your prompts, skills, connectors and memory as files you own. Kortix is the open-source AI Management System that holds those files in one git repo, and the leading open-source alternative to Claude Cowork and OpenAI ChatGPT Work. Most of the work is deciding what to keep before any tool changes, then moving it in a fixed order, and checking each change before it lands.

What a migration actually moves

Kortix keeps agents, skills, memory, connector configuration and triggers as text files in one git repo you own, each session runs on its own isolated Linux machine, and finished work reaches the default branch through a change request a human reads as a diff. You can grep the whole company, diff any change an agent makes, and roll any part of it back, as the Kortix docs describe.

ChatGPT Work is OpenAI's agent for longer, multi-step work inside ChatGPT. It keeps related work in Projects, which hold chats, uploaded files and custom instructions, and it can draw on connected apps and skills while it runs. Those are the places your configuration lives today: Projects and their instructions, Skills, connected apps and plugins, memory, and the workspace permissions and schedules around them.

Five asset classes carry over:

  • Prompts and instructions. The custom instructions on each Project and the recurring prompts your team pastes.
  • Skills. Every skill created, uploaded or shared in the workspace that encodes how a job is done.
  • Connectors. Each connected app and plugin account, and the authorization behind it.
  • Memory. The facts and preferences the product has learned that you want an agent to keep.
  • Permissions and triggers. Who may run what, which actions paused for approval, and every scheduled or event-triggered task.

Kortix holds all five as files or config entries in one repository, so what you move is what you keep.

Inventory before you move

A migration goes wrong when a team changes tools before it knows which instructions, skills and connections matter. Walk each asset class and write one line per item: what it does, who uses it, and whether it is still worth keeping. Anything that fails the last test does not travel.

  • Prompts and instructions: open each Project's settings and copy the custom instructions, then list the prompts the team repeats every week.
  • Skills: open the Skills page and record every skill under Installed, Created by me, Shared with me and Shared by workspace.
  • Connectors: list each connected app and plugin account, and note who authorized it.
  • Memory: note the preferences and facts an agent should carry forward, and drop the rest.
  • Permissions and triggers: record the roles, the actions that paused for approval, and each scheduled or event-triggered task.

The output is a short document that decides what you rebuild and what you drop.

Migration steps in order

Run the steps in order. Each one leaves the system in a working state, so you can test before the next.

1. Stand up open-source Kortix

Install the CLI with curl -fsSL https://kortix.com/install | bash, or create a project in Kortix Cloud or a self-hosted instance if you prefer nothing to install. The CLI runs on macOS and Linux. A self-hosted box runs the same product as Kortix Cloud, on a laptop, a VPS, your VPC or on-prem. The install and the host options are in the Kortix docs.

2. Scaffold the project repo

Run kortix init my-app. It creates a project directory with a kortix.yaml manifest plus your agents/, skills/ and runtime configuration. kortix ship then commits the repo, pushes it, and brings the project live in the cloud. The scaffold declares kortix_version: 2 and runs the OpenCode harness, per the Kortix CLI docs.

3. Import prompts and skills as markdown

Write each agent as a markdown file plus a block in kortix.yaml, and each skill as the markdown that encodes one job. Because both are text in the repo, you review them as a diff before anything merges. This is the point where the prompts and skills you inventoried become owned files instead of settings inside a vendor product (Kortix docs).

4. Reconnect your tools

Reproduce each connected app as a connector entry in kortix.yaml. Kortix reaches 3,000+ apps plus any MCP, OpenAPI, Postman, GraphQL or raw HTTP API, and each connector is scoped to the agents that may use it. Store every credential as a project secret rather than in the repo: Kortix brokers connector credentials server-side so they never enter the session machine (Kortix docs). You can also add an OpenAI key, or the ChatGPT subscription you already pay for, as a model rather than a connector.

5. Set permissions

Scope each tool call to allow, ask or block, down to a single shell command, and give people and agents per-resource permissions with roles and an audit trail. Start narrow: allow what an agent needs for its first job, set everything else to ask or block, and widen only when a call proves itself. The permission model is in the Kortix docs and about Kortix.

6. Run a first change request

Start a session with kortix sessions new --prompt "...". The agent works on its own branch inside an isolated sandbox, so your project is untouched while it runs, then opens a change request holding a summary and the exact diff. List it with kortix cr ls, read the patch with kortix cr diff, and merge it with kortix cr merge when it is right. Nothing reaches your default branch until a human merges, so a failed first attempt costs you a closed diff instead of a broken system (Kortix docs).

What you deliberately leave behind

Chat transcripts are not the asset. The durable value is the instructions, skills, connectors and memory that shaped them, and those travel as files. Leave old chats where they are unless you need them for reference.

Vendor-held workspace data can be hard to extract. OpenAI's own help states that you cannot export data from ChatGPT Business or Enterprise workspaces through ChatGPT settings, and that a downloaded export does not carry custom instructions, memories or GPTs across accounts. Plan to recreate prompts and instructions by hand rather than waiting for a clean export (OpenAI export help).

The per-seat vendor plan and its plugin authorizations do not cross over. Each connector is reauthorized in Kortix under a project secret, and the seat you were paying for stops mattering once the system is a repo. For the cost side of that switch, see Kortix pricing.

The closed runtime stays behind as well. There is no self-host edition of ChatGPT Work and no model switch inside it. Kortix runs the same stack on your own infrastructure or on its managed cloud, and takes any model with your keys. Kortix is open source (Elastic License 2.0): self-host, read and modify the code. To run the full stack yourself, see how to self-host Kortix.

Common pitfalls and how to avoid them

Pitfall Why it bites The fix in Kortix
Credentials copied into the repo A key in git history is hard to revoke Store each one as a project secret; Kortix brokers it server-side
Permissions widened on day one An agent reaches tools it should not touch Start allow, ask or block narrow, then widen per call
Chat logs imported instead of skills Transcripts add noise; skills carry the reusable work Port the markdown skill, not the history
Triggers forgotten Scheduled and event tasks stop after the move Recreate each one as a trigger in kortix.yaml
Everything moved at once One broken repo fails every agent together Move one agent, merge it, then start the next

Frequently asked questions

Can I export ChatGPT Work and import it into Kortix?

No direct path exists. OpenAI documents a per-account chat export, but it carries conversations rather than a runnable agent configuration, and Business and Enterprise workspace data cannot be exported through ChatGPT settings. Porting means re-authoring prompts and skills as markdown files that land in the repo as a change request.

Do I have to migrate everything at once?

No. Start with one agent and one skill, run a session, and merge the change request before adding the next. Because the company is a git repo, every addition arrives as a diff you can review or revert, so a partial migration is a working system rather than a half-finished one.

Can I keep using OpenAI models after moving to Kortix?

Yes. Kortix is model-agnostic: bring an API key from any major provider, including OpenAI, and pick the model per agent, per session or per message. You can also use the ChatGPT subscription you already pay for, or point an agent at your own OpenAI-compatible endpoint, and switching later is a config change.

How do I migrate ChatGPT Work's memory?

Kortix memory is files in the repo rather than a hidden store. During the import step, write the facts and preferences you inventoried into the memory files, and new memories accumulate there as sessions run. You can read, edit or delete any of them like the rest of the repo.

Start with open-source Kortix: the free tier, a self-hosted box on your own hardware, or a deployment in your own VPC. For the wider field, see what an open-source ChatGPT Work alternative is, and for the head-to-head, ChatGPT Work vs Kortix. Try Kortix.