---
title: "anilist-to-mangadex"
description: "Bring MangaDex statuses and chapter markers up to parity with AniList."
---

> Documentation Index
> Fetch the complete documentation index at: https://manifold.jfa.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# anilist-to-mangadex

```sh
manifold migrate anilist-to-mangadex [flags]
```

Fetches your AniList manga list, matches titles on MangaDex, then sets reading status and optionally marks chapters up to AniList progress. Runs entirely locally because AniList blocks Cloudflare Worker IPs.

## Flags

### `--anilist-token <token>`

Optional AniList access token override. Resolve order: flag → `MANIFOLD_ANILIST_TOKEN` → `login anilist` keychain.

Example:

```sh
manifold login anilist
manifold migrate anilist-to-mangadex
```

### `--apply`

Write statuses and chapter read markers to MangaDex. Without this flag, the
command only reports what it would change.

- Default: `false`

Example:

```sh
manifold migrate anilist-to-mangadex --apply
```

### `--skip-progress`

Update reading statuses but do not backfill MangaDex chapter read markers from
AniList progress.

- Default: `false`

Example:

```sh
manifold migrate anilist-to-mangadex --skip-progress
```

### `--mangadex-client-id <id>`

OAuth client ID for the MangaDex password grant. Falls back to
`MANIFOLD_MANGADEX_CLIENT_ID`.

Example:

```sh
manifold migrate anilist-to-mangadex --mangadex-client-id "$MANIFOLD_MANGADEX_CLIENT_ID"
```

### `--mangadex-client-secret <secret>`

OAuth client secret for the MangaDex password grant. Falls back to
`MANIFOLD_MANGADEX_CLIENT_SECRET`.

Example:

```sh
manifold migrate anilist-to-mangadex --mangadex-client-secret "$MANIFOLD_MANGADEX_CLIENT_SECRET"
```

### `--mangadex-username <username>`

MangaDex account username for the password grant. Falls back to
`MANIFOLD_MANGADEX_USERNAME`.

Example:

```sh
manifold migrate anilist-to-mangadex --mangadex-username "$MANIFOLD_MANGADEX_USERNAME"
```

### `--mangadex-password <password>`

MangaDex account password for the password grant. Falls back to
`MANIFOLD_MANGADEX_PASSWORD`.

Example:

```sh
manifold migrate anilist-to-mangadex --mangadex-password "$MANIFOLD_MANGADEX_PASSWORD"
```

All four MangaDex credential flags are required together. This command accepts
the OAuth password grant only; it does not accept a MangaDex personal token.

## Matching and status map

Per AniList entry:

1. MangaDex `links.al` direct hit
2. Normalized title search

AniList → MangaDex status mapping:

| AniList   | MangaDex       |
| --------- | -------------- |
| CURRENT   | `reading`      |
| REPEATING | `re_reading`   |
| PAUSED    | `on_hold`      |
| PLANNING  | `plan_to_read` |
| COMPLETED | `completed`    |
| DROPPED   | `dropped`      |

Chapter backfill marks read every chapter numbered up to the AniList progress
value (unless `--skip-progress`).

## Workflow

```sh
manifold migrate anilist-to-mangadex
manifold migrate anilist-to-mangadex --apply
```

Unmatched titles and per-title failures leave a non-zero exit code. Prefer a dry-run first on a large list. Secrets live in `cli/.env` — see `cli/.env.example`.

> **Credentials**
>
> Unlike `mangadex-to-anilist`, this path does not accept a MangaDex personal token. You need the
> OAuth client + username/password grant env vars.

Source: https://manifold.jfa.dev/cli/migrate/anilist-to-mangadex/index.mdx
