GitHubOpen source on GitHub

Put bots
to work.

Stress test your Minecraft server or automate the repetitive work. SoulFire bots run real client code, with visual scripting and SDKs.

Free for Windows, macOS, and Linux.

36 botsInteractive preview

Preview: 36 bots in scatter formation. This illustration does not connect to a server.

See how your
server holds up.

Find out how your server handles players joining and interacting before your next busy session.

Real Minecraft clients

Built on Fabric, so bots use Minecraft's own physics and networking.

How SoulFire works

Java and Bedrock

Connect to versions from Classic through the latest release. SoulFire translates the protocol for you.

Supported versions

Add your own plugins

Enable the built-in plugins or write a Fabric mod to control bots through the API.

Build a plugin

Give your bots
a job.

Connect events to actions in the visual editor to build a routine your bots can follow. Use the CLI for commands across all connected bots.

Scripting guide

TypeScript and
Python SDKs

Start with a server address and username. The SDK handles account setup and state sync, so you can focus on what your bot does.

TypeScript with Effect

Effect scopes close bot connections when the workflow ends.

bun add @soulfiremc/sdk effectTypeScript docs
import { Effect } from "effect";
import { SoulFire } from "@soulfiremc/sdk/bun";

const program = Effect.scoped(
  Effect.gen(function* () {
    const bot = yield* SoulFire.createBot({
      server: "localhost:25565",
      username: "DocsBot_1",
      installation: { version: "2.10.2" },
    });

    yield* bot.chat.send("Hello from SoulFire");
    yield* Effect.logInfo(`Health: ${bot.state.player?.health}`);
  }),
);

await Effect.runPromise(program);
GitHub

Come build
with us.

Share your scripts and get help on Discord. If you've found a bug or have a fix, head to GitHub.

Free and open source under AGPL-3.0

Common questions

The setup guide covers installation and your first connection.

Installation guide

Start your
first session.