Skip to main content

mnix

mnix is a lightweight Python implementation of a remote development workflow built around Nix flakes, SSH, and Podman.

The repository includes a root flake.nix, so mnix new can use the default ./flake.nix and nix develop works directly from the project root.

Commands

Client

mnix ls
mnix select [project-name]
mnix new [-f path/to/flake.nix] [--server server-name] project-name
mnix rebuild-switch [path/to/flake.nix] [--project project-name]
mnix shell [--project project-name]
mnix exec [--project project-name] -- command [args...]
mnix server ls
mnix server add ssh://user@example.com server-name
mnix server rm server-name

Server

The client talks to the server by invoking mnix-server over SSH. The server CLI is structured so it can later be reused behind Flask or FastAPI.

mnix-server project launch --name project-name --flake flake.nix
mnix-server project rebuild-switch --name project-name --flake flake.nix
mnix-server project shell --name project-name --flake flake.nix
mnix-server project exec --name project-name --flake flake.nix -- command [args...]

Configuration

Both client and server use TOML configuration.

Client config

Default path: ~/.config/mnix/client.toml

ssh_binary = "ssh"
remote_binary = "mnix-server"
remote_podman_binary = "podman"
default_server = "my-server"
database_path = "~/.local/state/mnix/client.db"

Server config

Default path: ~/.config/mnix/server.toml

podman_binary = "podman"
base_image = "docker.io/nixos/nix:latest"
workspace_root = "/tmp/mnix/workspaces"
warmup_command = "nix --extra-experimental-features 'nix-command flakes' develop -c true"
container_command = "sleep infinity"

Architecture

  • src/mnix/client: thin CLI, local SQLite state, SSH transport, workspace archiving.
  • src/mnix/server/domain: domain entities and value objects.
  • src/mnix/server/application: use cases for project launch and rebuild.
  • src/mnix/server/infrastructure: Podman runner, config loading, workspace extraction.
  • src/mnix/server/interfaces: server CLI adapter.

The current implementation is intentionally stateless on the server side: it stages a workspace, ensures a Podman container exists for the project, and returns command results directly to the client.

Metadata

Release files for mnix 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mnix 0.2.0
File Size Uploaded
mnix-0.2.0.tar.gz 19.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mnix 0.2.0
File Interpreter ABI Platform
mnix-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 39.9 kB

Release files / mnix-0.2.0.tar.gz

Download URL mnix-0.2.0.tar.gz
Size 19.8 kB
Tags Source
SHA-256 checksum
How to use checksums
d7edc08bf23112ffc35ad0cf56a70069491fcf8ebba55cf0ea103262b11f6eab
BLAKE2b-256 checksum
How to use checksums
c559107b967a864f1a685ad0fbf6a49090e9af03979e204fc4add78316a2f765
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 20, 2026.

Transparency log

Release files / mnix-0.2.0-py3-none-any.whl

Download URL mnix-0.2.0-py3-none-any.whl
Size 20.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3ece8ef24cbd9c9b053247a378cc1ac539da2767725de3489296bb3e1f7a8121
BLAKE2b-256 checksum
How to use checksums
9147a924f7bc124df19f3c1cef7e49b4056d996efbd522e3a164bd854705d8f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 20, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page