Contributing¶
Muxus is a community project, and contributions of any size are welcome.
Ways to help¶
- Report a bug. Open an issue with steps to reproduce, the platform, and
the expected behaviour. For connection problems, include the terminal's failure message
and the relevant redacted
Hostblock. - Suggest a feature. Describe the problem to be solved rather than only the proposed solution.
- Improve the docs. Every page has an edit pencil linking to its source.
- Send a pull request. See below.
Before you open a PR¶
- Build from source and start the dev servers.
- Make the change, following the conventions of the surrounding code.
-
Run the checks:
-
If the client bundle changed,
pnpm check:bundleenforces its budgets.
Project constraints¶
- The OpenSSH config is a document. Anything that writes to it must keep the rest of
the file byte-identical, write atomically, and leave a
.muxus.bak. Tests cover this. - Never take a key the shell needs. New chords belong in
client/src/keymap/, and a command that is not applicable must returnfalseso the key falls through. - Secrets do not go in the database. The persistence boundary rejects them.
- Layout changes must not remount terminals. The pane canvas is flat by design.
Pull request tips¶
- Keep PRs focused on one logical change.
- Describe what changed and why, and link any related issue.
- Include screenshots or a short clip for UI changes. The screenshot sandbox
(
node hack/demo-env.mjs) provides an environment with invented hosts to record in.
Editing the docs¶
The docs are built with Zensical and live in docs/. To preview
them locally:
The preview reloads on save. Screenshots are generated; see Building from source.
Code of conduct¶
Be kind and constructive. Assume good intent, keep discussions technical, and help newcomers.