---
title: Migrating to AKOS
description: Bring your existing automations with you — import flows from n8n, LangChain, LangGraph, Langflow, Flowise, and Dify, and migrate local data to the cloud.
---

AKOS is designed to sit on top of what you already have, not to make you start over. If you have already built automations in another tool, you can bring them across instead of rebuilding them by hand. And when you outgrow a local deployment, you can move your data to the cloud without losing history.

## Importing from other tools

The `akos import` command translates a third-party workflow export into an AKOS config (agents + flows). It auto-detects the source format, or you can force it with `--source`.

Supported sources: **n8n**, **LangChain**, **LangGraph**, **Langflow**, **Flowise**, and **Dify**.

```bash
akos import ./my-export.json
```

This prints the resulting AKOS config (YAML) to stdout. To write it to a file:

```bash
akos import ./my-export.json --out akos.config.yaml
```

To push the converted flows straight into a running workspace via the sidecar (instead of writing a file):

```bash
akos import ./my-export.json --apply
```

### Flags

| Flag | Purpose |
|---|---|
| `--out <path>` | Write the resulting YAML to a file instead of stdout. |
| `--apply` | Upsert the converted flow(s) directly into the running workspace via the sidecar. Mutually exclusive with `--out`. |
| `--source <id>` | Force the importer source (`n8n`, `langchain`, `langgraph`, `langflow`, `flowise`, `dify`) instead of auto-detecting. |
| `--workspace <id>` | Override the workspace id from the imported file. |
| `--quiet` | Suppress the warning summary. |

### What gets converted, and warnings

The importer maps the source's nodes and connections onto AKOS **agents** and **flows**. Constructs that have no direct AKOS equivalent are reported as warnings at the end of the run — the import still succeeds, and the warnings tell you exactly what to wire up by hand afterward. Review the generated config, fill in any flagged gaps, then validate it:

```bash
akos config validate akos.config.yaml
```

## Migrating local data to the cloud

When you start on the desktop app or a local deployment and later move to the multi-tenant cloud, `akos migrate-to-cloud` streams your local state (the SQLite filesystem store) into a cloud Postgres + object-store target.

```bash
akos migrate-to-cloud \
  --org <orgId> \
  --source ~/.agentskit \
  --target postgres://... \
  --dry-run
```

| Flag | Purpose |
|---|---|
| `--org <orgId>` | The target cloud organization. |
| `--source <path>` | The local state directory to migrate from. |
| `--target <url>` | The destination Postgres connection string. |
| `--dry-run` | Print the migration plan only — no writes. |
| `--resume` | Resume an interrupted migration from its checkpoint. |

The migration is **idempotent** (rows insert with conflict-skip, blobs already present are skipped) and **resumable** — a checkpoint file at `<source>/.migrate-checkpoint.json` lets an interrupted run pick up where it left off. Run with `--dry-run` first to review the plan before applying.

## Related topics

- **[Workflows in the app](/docs/using-the-app/flows)** — review imported flows in the visual editor.
- **[Agents in the app](/docs/using-the-app/agents)** — registry entries materialized from imports.
- **[Configuration](/docs/cli/configuration)** — validate, diff, and lock the config your import produces.
- **[Getting Started](/docs/getting-started)** — the three ways to run AKOS (web, desktop, CLI).
