This is a frontend for the SoulFire server. It is now packaged as a desktop app with Electron while still using the official SoulFire gRPC API.
Note
For more info about SoulFire, take a look at the main SoulFire repository.
Built using latest web tech to consistently work on both web, desktop and mobile. The client is the GUI for the SoulFire server, but it uses the official SoulFire gRPC API. Anything that can be done using the SF client can also be done using gRPC HTTP API calls directly.
Tip
Want to check out how SoulFire looks before installing it? Take a look at the official demo page.
For installing SoulFire, please refer to the installation guide.
See which branches are at which URLs:
Install Bun at the version in package.json and the Node.js LTS used by CI before you build the client.
Take a look at the scripts in package.json to see how to run a dev env locally.
You can also refer to the GitHub actions workflows to see how production builds are made.
The client generates its RPC bindings directly from the SoulFire repository with Buf.
buf.gen.yaml pins the source to a full Git commit hash, independent of server and SDK releases.
The server revision also pins the imported schemas through its buf.lock.
- Push the protocol changes to the SoulFire repository.
- Set
inputs[0].refinbuf.gen.yamlto that commit's full hash. - Run
bun run protocol:generate. - Update affected client code and run
bun run typecheck,bun test, andbun run build:web. - Commit the pin, generated bindings, and client changes together.
The generated files in src/generated/ are checked in. Normal builds do not fetch schemas or require a server checkout.
CI regenerates the bindings and checks for differences. Generation requires Git and network access to GitHub and the Buf Schema Registry.
The generator versions are pinned in package.json and bun.lock.
For local protocol development, run bun run protocol:generate -- ../SoulFire to generate from a local server checkout.
Before committing the client changes, update the remote pin and regenerate without the local path.
New client features must handle older servers that omit optional fields or do not implement new RPC methods.
| Free code signing on Windows provided by SignPath.io, certificate by SignPath Foundation |
Read CONTRIBUTING.md for local setup and review expectations. Use SUPPORT.md for questions and issue routing. Follow the community code of conduct and report vulnerabilities through the private security contacts.