Skip to main content

Migrate Discord servers to Stoat (formerly Revolt)

Project description

Discord Ferry

Migrate your Discord server to Stoat (formerly Revolt) — messages, channels, roles, emoji, attachments, and all.

One-click app for Windows and Mac. Command-line interface for Linux. No coding required. Your data stays on your machine.


Download

Platform Download Size
Windows Ferry.exe ~25 MB
macOS Ferry.zip ~25 MB
Linux / pip pipx install discord-ferry

What is Stoat?

Stoat (formerly Revolt) is an open-source chat platform — like Discord, but community-owned. You can use the official hosted service or run it on your own server. Ferry moves your entire Discord server there.

New to Stoat? Create a free account or self-host your own instance.


How It Works

Step 1: Enter your credentials

Launch Ferry. You'll need four things:

  • Discord user token + server ID — a token is a secret key that lets Ferry access your account. Ferry shows you how to find both.
  • Stoat API URL — the web address Ferry uses to talk to Stoat. Use https://api.stoat.chat for the official service, or your own domain if you run your own Stoat instance.
  • Stoat user token — your Stoat secret key. The step-by-step guide shows exactly where to find it.

Step 2: Ferry exports your server automatically

Ferry downloads and runs DiscordChatExporter behind the scenes — no manual steps.

Step 3: Click Migrate

Messages, channels, roles, emoji, and attachments migrate to Stoat. Each message shows the original author's name and avatar. Pins are preserved.

Already have DiscordChatExporter (DCE) exports? Ferry also supports offline mode — just point it at your export folder.


How long does it take?

About 1 message per second. Stoat limits how fast data can be sent to protect the service, which sets this pace. That means:

  • 1,000 messages ~ 17 minutes
  • 10,000 messages ~ 3 hours
  • 100,000 messages ~ 28 hours (run overnight!)

Ferry can pause and resume — close it anytime, pick up where you left off.


What gets migrated?

Feature Status
Text channels Supported
Categories Supported
Roles (with colours and permissions) Supported — Discord permissions translated to Stoat equivalents
Channel permissions Supported — per-role and @everyone overrides migrated
NSFW channels Supported — NSFW flag set during channel creation
Messages + author names Supported (each message shows the original author's name and avatar)
File attachments Supported
Custom emoji Supported (up to 100)
Pinned messages Supported
Replies Supported
Reactions Supported (without per-user attribution)
Embeds (with media) Supported (thumbnails and images uploaded)
Polls Supported (rendered as formatted text)
Threads Supported (converted to text channels)
Forum posts Supported (grouped into dedicated categories)
Voice channels Partial (created but do not work yet — known Stoat bug)
Stickers Image upload with text fallback for Lottie/missing
Original timestamps Shown in message text, not metadata
Pre-creation review Summary and confirmation before anything is created on Stoat
Server blueprints Export migration structure as reusable JSON templates

Detailed Guides


Contributing

We welcome contributions! See CONTRIBUTING.md.


License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

discord_ferry-1.4.0.tar.gz (91.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

discord_ferry-1.4.0-py3-none-any.whl (80.8 kB view details)

Uploaded Python 3

File details

Details for the file discord_ferry-1.4.0.tar.gz.

File metadata

  • Download URL: discord_ferry-1.4.0.tar.gz
  • Upload date:
  • Size: 91.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for discord_ferry-1.4.0.tar.gz
Algorithm Hash digest
SHA256 77c5921d50abde0d78aa5742c38cb6c327c5794dc481876b6e009ef6002b3d50
MD5 c5bad50b45108f28e2bb0945be57fe61
BLAKE2b-256 9b786eaa2eb51fcef5699b3b90eef3a4b288ca6d4d4404d5fca041dea8081a37

See more details on using hashes here.

Provenance

The following attestation bundles were made for discord_ferry-1.4.0.tar.gz:

Publisher: release.yml on psthubhorizon/Discord-stoat-ferry

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file discord_ferry-1.4.0-py3-none-any.whl.

File metadata

  • Download URL: discord_ferry-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 80.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for discord_ferry-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fc0e3a9b6a29a023edce4abe5792aa47b9f95290a6b1dc3f8028af0037795fcf
MD5 ad5928715f9d565b821d348a1a5d3922
BLAKE2b-256 42b2af6732a212b28e74c67c8011af1d9e75bdd734675de46da64736681200fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for discord_ferry-1.4.0-py3-none-any.whl:

Publisher: release.yml on psthubhorizon/Discord-stoat-ferry

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page