← WebMCP Directory

Tool tree

trynix.dev

Developer ToolsTools verified
Website
Boot anything nixpkgs ever shipped, in your browser: qemu-wasm plus the nixpkgs-multiverse index, no server anywhere.
Explore capabilities

    page: Every page

    page-stateAnswer

    What trynix currently has: whether a guest is running, which packages are selected, and the link that reproduces this page.

    View tool JSON
    {
      "name": "page-state",
      "kind": "answer",
      "impl": "imperative",
      "description": "What trynix currently has: whether a guest is running, which packages are selected, and the link that reproduces this page.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/"
    }
    search-packagesAnswer

    Search the nixpkgs-multiverse index for attribute names. Covers every package in 13 years of nixpkgs history, not only the current release.

    View tool JSON
    {
      "name": "search-packages",
      "kind": "answer",
      "impl": "imperative",
      "description": "Search the nixpkgs-multiverse index for attribute names. Covers every package in 13 years of nixpkgs history, not only the current release.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "part of an attribute name"
          },
          "limit": {
            "type": "integer",
            "description": "how many to return (default 20)"
          }
        },
        "required": [
          "query"
        ]
      },
      "page": "/"
    }
    list-versionsAnswer

    Every version of one attribute that nixpkgs ever shipped, newest first, each marked with whether Hydra built it for x86_64-linux. A version with no build cannot be booted: there is nothing in the cache to fetch.

    View tool JSON
    {
      "name": "list-versions",
      "kind": "answer",
      "impl": "imperative",
      "description": "Every version of one attribute that nixpkgs ever shipped, newest first, each marked with whether Hydra built it for x86_64-linux. A version with no build cannot be booted: there is nothing in the cache to fetch.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "attr": {
            "type": "string",
            "description": "an attribute name, e.g. ripgrep"
          }
        },
        "required": [
          "attr"
        ]
      },
      "page": "/"
    }
    select-packagesAction

    Add packages or raw store paths to the selection. A package named without a version takes the newest one the index can boot. Selecting does not boot; call boot afterwards.

    View tool JSON
    {
      "name": "select-packages",
      "kind": "act",
      "impl": "imperative",
      "description": "Add packages or raw store paths to the selection. A package named without a version takes the newest one the index can boot. Selecting does not boot; call boot afterwards.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "packages": {
            "type": "array",
            "description": "attributes to select, optionally at a version",
            "items": {
              "type": "object",
              "properties": {
                "attr": {
                  "type": "string"
                },
                "version": {
                  "type": "string"
                }
              },
              "required": [
                "attr"
              ]
            }
          },
          "storePaths": {
            "type": "array",
            "description": "store paths to select verbatim",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "page": "/"
    }
    set-cachesAction

    Replace the extra binary caches trynix fetches from, each with the public key that vouches for it. cache.nixos.org is always tried first and is not listed here. A cache is only reachable from a browser if it allows cross-origin reads, which cachix does.

    View tool JSON
    {
      "name": "set-caches",
      "kind": "act",
      "impl": "imperative",
      "description": "Replace the extra binary caches trynix fetches from, each with the public key that vouches for it. cache.nixos.org is always tried first and is not listed here. A cache is only reachable from a browser if it allows cross-origin reads, which cachix does.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "caches": {
            "type": "array",
            "description": "the extra caches, in the order to try them",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "description": "e.g. https://my-cache.cachix.org"
                },
                "key": {
                  "type": "string",
                  "description": "its public key, e.g. my-cache.cachix.org-1:0Ma9…"
                }
              },
              "required": [
                "url",
                "key"
              ]
            }
          }
        },
        "required": [
          "caches"
        ]
      },
      "page": "/"
    }
    bootAction

    Boot the selection in the tab: fetch its closure from cache.nixos.org into an x86_64 Linux VM and wait for a shell. Takes a few seconds on a warm cache and much longer on a cold one. Once a guest is running, selecting more packages and calling boot again adds them without rebooting.

    View tool JSON
    {
      "name": "boot",
      "kind": "act",
      "impl": "imperative",
      "description": "Boot the selection in the tab: fetch its closure from cache.nixos.org into an x86_64 Linux VM and wait for a shell. Takes a few seconds on a warm cache and much longer on a cold one. Once a guest is running, selecting more packages and calling boot again adds them without rebooting.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/"
    }
    run-commandAction

    Run a shell command in the running guest and return its output and exit status. This is the only way to read the guest's console: the terminal is drawn on a canvas, so nothing it prints is in the page's DOM.

    View tool JSON
    {
      "name": "run-command",
      "kind": "act",
      "impl": "imperative",
      "description": "Run a shell command in the running guest and return its output and exit status. This is the only way to read the guest's console: the terminal is drawn on a canvas, so nothing it prints is in the page's DOM.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "command": {
            "type": "string",
            "description": "the command to run"
          },
          "timeoutMs": {
            "type": "integer",
            "description": "how long to wait before returning what it has printed so far"
          }
        },
        "required": [
          "command"
        ]
      },
      "page": "/"
    }
    read-consoleAnswer

    Everything the guest has said so far, boot messages included. Use this when a boot or a command went wrong and the reason is further back than the last command's output.

    View tool JSON
    {
      "name": "read-console",
      "kind": "answer",
      "impl": "imperative",
      "description": "Everything the guest has said so far, boot messages included. Use this when a boot or a command went wrong and the reason is further back than the last command's output.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/"
    }