dotslash: add linux-aarch64 and linux-x86_64 platforms
Regenerating also picked up the latest upstream releases.
Assisted-by: Claude Opus 5.5 via Claude Code
diff --git a/Rakefile b/Rakefile
index 5ade7739..fdd3e60e 100644
--- a/Rakefile
+++ b/Rakefile
@@ -60,29 +60,35 @@ namespace :dotslash do
nil
end
- def update_dotslash_release(name:, repo:, path: name, tag: nil, &asset)
+ # The block receives the tag and returns a hash of DotSlash platform to
+ # asset name. A `path` proc receives each asset name.
+ def update_dotslash_release(name:, repo:, path: name, tag: nil, &assets)
unless tag
tag = JSON.parse(`gh release view --repo #{repo} --json tagName`)["tagName"]
end
- asset_name = asset.call(tag)
- resolved_path = path.respond_to?(:call) ? path.call(tag) : path
-
- url = "https://github.com/#{repo}/releases/download/#{tag}/#{asset_name}"
- entry = JSON.parse(`dotslash -- create-url-entry #{url}`)
-
- platform = {
- size: entry["size"],
- hash: "blake3",
- digest: entry["digest"],
- path: resolved_path,
- providers: [
- { url: url },
- { type: "github-release", repo: "https://github.com/#{repo}", tag: tag, name: asset_name },
- ],
- }
- platform[:format] = entry["format"] if entry["format"] && !entry["format"].start_with?("TODO")
- dotslash = { name: name, platforms: { "macos-aarch64" => platform } }
+ platforms = assets.call(tag).transform_values do |asset_name|
+ url = "https://github.com/#{repo}/releases/download/#{tag}/#{asset_name}"
+ output = `dotslash -- create-url-entry #{url}`
+ raise "create-url-entry failed for #{url}" unless $?.success?
+
+ entry = JSON.parse(output)
+
+ platform = {
+ size: entry["size"],
+ hash: "blake3",
+ digest: entry["digest"],
+ path: path.respond_to?(:call) ? path.call(asset_name) : path,
+ providers: [
+ { url: url },
+ { type: "github-release", repo: "https://github.com/#{repo}", tag: tag, name: asset_name },
+ ],
+ }
+ platform[:format] = entry["format"] if entry["format"] && !entry["format"].start_with?("TODO")
+ platform
+ end
+
+ dotslash = { name: name, platforms: platforms }
file = "bin/#{name}"
previous_tag = dotslash_tag(file)
@@ -103,67 +109,134 @@ namespace :dotslash do
desc "Update jq"
task(:jq) do
- update_dotslash_release(name: "jq", repo: "jqlang/jq") { "jq-macos-arm64" }
+ update_dotslash_release(name: "jq", repo: "jqlang/jq") do
+ {
+ "macos-aarch64" => "jq-macos-arm64",
+ "linux-aarch64" => "jq-linux-arm64",
+ "linux-x86_64" => "jq-linux-amd64",
+ }
+ end
end
desc "Update jj"
task(:jj) do
- update_dotslash_release(name: "jj", repo: "jj-vcs/jj") { |tag| "jj-#{tag}-aarch64-apple-darwin.tar.gz" }
+ update_dotslash_release(name: "jj", repo: "jj-vcs/jj") do |tag|
+ {
+ "macos-aarch64" => "jj-#{tag}-aarch64-apple-darwin.tar.gz",
+ "linux-aarch64" => "jj-#{tag}-aarch64-unknown-linux-musl.tar.gz",
+ "linux-x86_64" => "jj-#{tag}-x86_64-unknown-linux-musl.tar.gz",
+ }
+ end
end
desc "Update just"
task(:just) do
- update_dotslash_release(name: "just", repo: "casey/just") { |tag| "just-#{tag}-aarch64-apple-darwin.tar.gz" }
+ update_dotslash_release(name: "just", repo: "casey/just") do |tag|
+ {
+ "macos-aarch64" => "just-#{tag}-aarch64-apple-darwin.tar.gz",
+ "linux-aarch64" => "just-#{tag}-aarch64-unknown-linux-musl.tar.gz",
+ "linux-x86_64" => "just-#{tag}-x86_64-unknown-linux-musl.tar.gz",
+ }
+ end
end
desc "Update fzf"
task(:fzf) do
- update_dotslash_release(name: "fzf", repo: "junegunn/fzf") { |tag| "fzf-#{tag.delete_prefix("v")}-darwin_arm64.tar.gz" }
+ update_dotslash_release(name: "fzf", repo: "junegunn/fzf") do |tag|
+ version = tag.delete_prefix("v")
+ {
+ "macos-aarch64" => "fzf-#{version}-darwin_arm64.tar.gz",
+ "linux-aarch64" => "fzf-#{version}-linux_arm64.tar.gz",
+ "linux-x86_64" => "fzf-#{version}-linux_amd64.tar.gz",
+ }
+ end
end
desc "Update zizmor"
task(:zizmor) do
- update_dotslash_release(name: "zizmor", repo: "zizmorcore/zizmor") { |tag| "zizmor-aarch64-apple-darwin.tar.gz" }
+ update_dotslash_release(name: "zizmor", repo: "zizmorcore/zizmor") do
+ {
+ "macos-aarch64" => "zizmor-aarch64-apple-darwin.tar.gz",
+ "linux-aarch64" => "zizmor-aarch64-unknown-linux-gnu.tar.gz",
+ "linux-x86_64" => "zizmor-x86_64-unknown-linux-gnu.tar.gz",
+ }
+ end
end
desc "Update sops"
task(:sops) do
- update_dotslash_release(name: "sops", repo: "getsops/sops") { |tag| "sops-#{tag}.darwin.arm64" }
+ update_dotslash_release(name: "sops", repo: "getsops/sops") do |tag|
+ {
+ "macos-aarch64" => "sops-#{tag}.darwin.arm64",
+ "linux-aarch64" => "sops-#{tag}.linux.arm64",
+ "linux-x86_64" => "sops-#{tag}.linux.amd64",
+ }
+ end
+ end
+
+ age_assets = lambda do |tag|
+ {
+ "macos-aarch64" => "age-#{tag}-darwin-arm64.tar.gz",
+ "linux-aarch64" => "age-#{tag}-linux-arm64.tar.gz",
+ "linux-x86_64" => "age-#{tag}-linux-amd64.tar.gz",
+ }
end
desc "Update age"
task(:age) do
- update_dotslash_release(name: "age", repo: "FiloSottile/age", path: "age/age") { |tag| "age-#{tag}-darwin-arm64.tar.gz" }
+ update_dotslash_release(name: "age", repo: "FiloSottile/age", path: "age/age", &age_assets)
end
desc "Update age-keygen"
task("age-keygen") do
- update_dotslash_release(name: "age-keygen", repo: "FiloSottile/age", path: "age/age-keygen") { |tag| "age-#{tag}-darwin-arm64.tar.gz" }
+ update_dotslash_release(name: "age-keygen", repo: "FiloSottile/age", path: "age/age-keygen", &age_assets)
end
desc "Update tree-sitter"
task(:tree_sitter) do
- update_dotslash_release(name: "tree-sitter", repo: "tree-sitter/tree-sitter") { "tree-sitter-macos-arm64.gz" }
+ update_dotslash_release(name: "tree-sitter", repo: "tree-sitter/tree-sitter") do
+ {
+ "macos-aarch64" => "tree-sitter-macos-arm64.gz",
+ "linux-aarch64" => "tree-sitter-linux-arm64.gz",
+ "linux-x86_64" => "tree-sitter-linux-x64.gz",
+ }
+ end
end
desc "Update ramekin"
task(:ramekin) do
- update_dotslash_release(name: "ramekin", repo: "kejadlen/ramekin") { "ramekin-aarch64-apple-darwin.tar.gz" }
+ update_dotslash_release(name: "ramekin", repo: "kejadlen/ramekin") do
+ { "macos-aarch64" => "ramekin-aarch64-apple-darwin.tar.gz" }
+ end
end
desc "Update cq"
task(:cq) do
- update_dotslash_release(name: "cq", repo: "technicalpickles/cq", path: ->(tag) { "cq-#{tag.delete_prefix("v")}-aarch64-apple-darwin/cq" }) { |tag| "cq-#{tag.delete_prefix("v")}-aarch64-apple-darwin.tar.gz" }
+ update_dotslash_release(name: "cq", repo: "technicalpickles/cq", path: ->(asset) { "#{asset.delete_suffix(".tar.gz")}/cq" }) do |tag|
+ version = tag.delete_prefix("v")
+ {
+ "macos-aarch64" => "cq-#{version}-aarch64-apple-darwin.tar.gz",
+ "linux-aarch64" => "cq-#{version}-aarch64-unknown-linux-gnu.tar.gz",
+ "linux-x86_64" => "cq-#{version}-x86_64-unknown-linux-gnu.tar.gz",
+ }
+ end
end
desc "Update ranger"
task(:ranger) do
- update_dotslash_release(name: "ranger", repo: "kejadlen/ranger") { "ranger-aarch64-apple-darwin.tar.gz" }
+ update_dotslash_release(name: "ranger", repo: "kejadlen/ranger") do
+ {
+ "macos-aarch64" => "ranger-aarch64-apple-darwin.tar.gz",
+ "linux-aarch64" => "ranger-aarch64-unknown-linux-gnu.tar.gz",
+ }
+ end
end
desc "Update frork"
task(:frork) do
- update_dotslash_release(name: "frork", repo: "kejadlen/frork") { "frork-aarch64-apple-darwin.tar.gz" }
+ update_dotslash_release(name: "frork", repo: "kejadlen/frork") do
+ { "macos-aarch64" => "frork-aarch64-apple-darwin.tar.gz" }
+ end
end
desc "Update all dotslash files"
diff --git a/ai/skills/dotslash/SKILL.md b/ai/skills/dotslash/SKILL.md
index feabcc8b..bdd02618 100644
--- a/ai/skills/dotslash/SKILL.md
+++ b/ai/skills/dotslash/SKILL.md
@@ -5,7 +5,7 @@ description: Use when adding, updating, or troubleshooting DotSlash binaries in
# DotSlash Binaries
-This repo uses [DotSlash](https://dotslash-cli.com) to manage binaries in `bin/`. DotSlash files are lightweight JSON wrappers that lazily fetch, verify, cache, and run executables. Only `macos-aarch64` platform entries are needed. Run `dotslash --help` for the full CLI; `create-url-entry` is the only subcommand these workflows use.
+This repo uses [DotSlash](https://dotslash-cli.com) to manage binaries in `bin/`. DotSlash files are lightweight JSON wrappers that lazily fetch, verify, cache, and run executables. Each file covers `macos-aarch64`, `linux-aarch64`, and `linux-x86_64`, minus any platform upstream doesn't publish. Run `dotslash --help` for the full CLI; `create-url-entry` is the only subcommand these workflows use.
## Adding a new DotSlash binary
@@ -16,19 +16,24 @@ The `update_dotslash_release` helper in `Rakefile` generates the file for you
In the `dotslash` namespace, add a task that calls the helper, then list `<name>` in the `all` task. The helper resolves the latest tag with `gh release view`, runs `create-url-entry`, and writes `bin/<name>`:
```ruby
-desc "Update ramekin"
-task(:ramekin) do
- update_dotslash_release(name: "ramekin", repo: "kejadlen/ramekin") { "ramekin-aarch64-apple-darwin.tar.gz" }
+desc "Update jj"
+task(:jj) do
+ update_dotslash_release(name: "jj", repo: "jj-vcs/jj") do |tag|
+ {
+ "macos-aarch64" => "jj-#{tag}-aarch64-apple-darwin.tar.gz",
+ "linux-aarch64" => "jj-#{tag}-aarch64-unknown-linux-musl.tar.gz",
+ "linux-x86_64" => "jj-#{tag}-x86_64-unknown-linux-musl.tar.gz",
+ }
+ end
end
```
-The block receives the resolved tag and returns the asset filename. Ignore the tag when the name is fixed (as above), or interpolate it (e.g. `{ |tag| "jj-#{tag}-aarch64-apple-darwin.tar.gz" }`). Pass `path:` when the executable sits inside an archive subdirectory; it defaults to `name`, which is correct when the archive holds a single file at its root. When the subdirectory embeds the version (e.g. `cq-0.2.1-aarch64-apple-darwin/cq`), pass `path:` a proc — it receives the resolved tag just like the asset block, so the generated `path` stays correct across release bumps:
+The block receives the resolved tag and returns a hash of DotSlash platform to asset filename. Ignore the tag when the names are fixed, or interpolate it (as above). Leave out a platform upstream doesn't publish. On Linux, prefer a `musl` asset over `gnu` when both exist, since it's statically linked and runs regardless of the host's glibc.
+
+Pass `path:` when the executable sits inside an archive subdirectory; it defaults to `name`, which is correct when the archive holds a single file at its root. When the subdirectory varies by platform or version (e.g. `cq-0.11.0-aarch64-apple-darwin/cq`), pass `path:` a proc — it receives each asset filename, so the generated `path` stays correct across platforms and release bumps:
```ruby
-desc "Update cq"
-task(:cq) do
- update_dotslash_release(name: "cq", repo: "technicalpickles/cq", path: ->(tag) { "cq-#{tag.delete_prefix("v")}-aarch64-apple-darwin/cq" }) { |tag| "cq-#{tag.delete_prefix("v")}-aarch64-apple-darwin.tar.gz" }
-end
+path: ->(asset) { "#{asset.delete_suffix(".tar.gz")}/cq" }
```
### 2. Generate and verify
@@ -43,7 +48,7 @@ bin/<name> --help # or whatever smoke test is appropriate
Prefer extending `update_dotslash_release` over hand-writing JSON. Reserve hand-writing for cases the helper can't reach — a non-GitHub host, an unusual URL scheme, or a repo with no Rakefile to hold the helper (`Gusto/claude-code` ships DotSlash launchers inside plugins and has none):
-1. Find the asset with `gh release view --repo owner/repo --json tagName,assets` and pick the `macos-arm64` / `macos-aarch64` / `darwin-arm64` one.
+1. Find the asset with `gh release view --repo owner/repo --json tagName,assets` and pick the asset for each platform (e.g. `darwin-arm64`, `linux-arm64`, `linux-amd64`).
2. Run `dotslash -- create-url-entry URL`. It computes size and hash and infers `format` from the URL suffix; you fill in `path`.
On a private repo it can't do this — it fetches the URL with no auth and gets a 404. Download the asset instead (`gh release download <tag> --repo owner/repo --pattern '<asset>'`), then take `size` from `ls -l` and `digest` from `shasum -a 256`, and set `"hash": "sha256"` to match.
3. Determine `path`: for a bare binary, the filename to save as (e.g. `"jq"`, omit `format`); for an archive, the executable's relative path inside it (list contents with `curl -sL URL | tar tzf -`, or `tar tzf <file>` on the copy you downloaded above).
@@ -72,7 +77,9 @@ Prefer extending `update_dotslash_release` over hand-writing JSON. Reserve hand-
"name": "<asset-filename>"
}
]
- }
+ },
+ "linux-aarch64": { ... },
+ "linux-x86_64": { ... }
}
}
```
diff --git a/bin/age b/bin/age
index 72bb6222..40577e39 100755
--- a/bin/age
+++ b/bin/age
@@ -4,19 +4,55 @@
"name": "age",
"platforms": {
"macos-aarch64": {
- "size": 9685129,
+ "size": 18106798,
"hash": "blake3",
- "digest": "d86f2a77816f81bf07ca2c983649b1a72d026f73aec09c3b80d42e1ac34e2b7b",
+ "digest": "ccb5b4e83bf4ef7ac6f0909b8a6bde008b8f2f865572acbc7205e618e7229813",
"path": "age/age",
"providers": [
{
- "url": "https://github.com/FiloSottile/age/releases/download/v1.3.1/age-v1.3.1-darwin-arm64.tar.gz"
+ "url": "https://github.com/FiloSottile/age/releases/download/v1.3.2/age-v1.3.2-darwin-arm64.tar.gz"
},
{
"type": "github-release",
"repo": "https://github.com/FiloSottile/age",
- "tag": "v1.3.1",
- "name": "age-v1.3.1-darwin-arm64.tar.gz"
+ "tag": "v1.3.2",
+ "name": "age-v1.3.2-darwin-arm64.tar.gz"
+ }
+ ],
+ "format": "tar.gz"
+ },
+ "linux-aarch64": {
+ "size": 17771923,
+ "hash": "blake3",
+ "digest": "842df011003d958ab7ee045c8124d4d711eed3b88820bda4c95e1db2dfd89795",
+ "path": "age/age",
+ "providers": [
+ {
+ "url": "https://github.com/FiloSottile/age/releases/download/v1.3.2/age-v1.3.2-linux-arm64.tar.gz"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/FiloSottile/age",
+ "tag": "v1.3.2",
+ "name": "age-v1.3.2-linux-arm64.tar.gz"
+ }
+ ],
+ "format": "tar.gz"
+ },
+ "linux-x86_64": {
+ "size": 19405817,
+ "hash": "blake3",
+ "digest": "c823fc14e0c64b2f3358945fe7b61e4bef0805f45b83dee7f2e2995fccb55c62",
+ "path": "age/age",
+ "providers": [
+ {
+ "url": "https://github.com/FiloSottile/age/releases/download/v1.3.2/age-v1.3.2-linux-amd64.tar.gz"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/FiloSottile/age",
+ "tag": "v1.3.2",
+ "name": "age-v1.3.2-linux-amd64.tar.gz"
}
],
"format": "tar.gz"
diff --git a/bin/age-keygen b/bin/age-keygen
index 0ba3280c..539760a1 100755
--- a/bin/age-keygen
+++ b/bin/age-keygen
@@ -4,19 +4,55 @@
"name": "age-keygen",
"platforms": {
"macos-aarch64": {
- "size": 9685129,
+ "size": 18106798,
"hash": "blake3",
- "digest": "d86f2a77816f81bf07ca2c983649b1a72d026f73aec09c3b80d42e1ac34e2b7b",
+ "digest": "ccb5b4e83bf4ef7ac6f0909b8a6bde008b8f2f865572acbc7205e618e7229813",
"path": "age/age-keygen",
"providers": [
{
- "url": "https://github.com/FiloSottile/age/releases/download/v1.3.1/age-v1.3.1-darwin-arm64.tar.gz"
+ "url": "https://github.com/FiloSottile/age/releases/download/v1.3.2/age-v1.3.2-darwin-arm64.tar.gz"
},
{
"type": "github-release",
"repo": "https://github.com/FiloSottile/age",
- "tag": "v1.3.1",
- "name": "age-v1.3.1-darwin-arm64.tar.gz"
+ "tag": "v1.3.2",
+ "name": "age-v1.3.2-darwin-arm64.tar.gz"
+ }
+ ],
+ "format": "tar.gz"
+ },
+ "linux-aarch64": {
+ "size": 17771923,
+ "hash": "blake3",
+ "digest": "842df011003d958ab7ee045c8124d4d711eed3b88820bda4c95e1db2dfd89795",
+ "path": "age/age-keygen",
+ "providers": [
+ {
+ "url": "https://github.com/FiloSottile/age/releases/download/v1.3.2/age-v1.3.2-linux-arm64.tar.gz"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/FiloSottile/age",
+ "tag": "v1.3.2",
+ "name": "age-v1.3.2-linux-arm64.tar.gz"
+ }
+ ],
+ "format": "tar.gz"
+ },
+ "linux-x86_64": {
+ "size": 19405817,
+ "hash": "blake3",
+ "digest": "c823fc14e0c64b2f3358945fe7b61e4bef0805f45b83dee7f2e2995fccb55c62",
+ "path": "age/age-keygen",
+ "providers": [
+ {
+ "url": "https://github.com/FiloSottile/age/releases/download/v1.3.2/age-v1.3.2-linux-amd64.tar.gz"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/FiloSottile/age",
+ "tag": "v1.3.2",
+ "name": "age-v1.3.2-linux-amd64.tar.gz"
}
],
"format": "tar.gz"
diff --git a/bin/cq b/bin/cq
index 52ce4f3d..f47cbce3 100755
--- a/bin/cq
+++ b/bin/cq
@@ -4,19 +4,55 @@
"name": "cq",
"platforms": {
"macos-aarch64": {
- "size": 12708481,
+ "size": 13045210,
"hash": "blake3",
- "digest": "1458254deb97a5113d525e5370cd3ce90fbd08035f95e909c079eb3a73e0d8de",
- "path": "cq-0.4.0-aarch64-apple-darwin/cq",
+ "digest": "c7cc03f951aa895bd466a34aa53e429ed8cf3927bc5ba7e38934af01bb3bbe66",
+ "path": "cq-0.11.0-aarch64-apple-darwin/cq",
"providers": [
{
- "url": "https://github.com/technicalpickles/cq/releases/download/v0.4.0/cq-0.4.0-aarch64-apple-darwin.tar.gz"
+ "url": "https://github.com/technicalpickles/cq/releases/download/v0.11.0/cq-0.11.0-aarch64-apple-darwin.tar.gz"
},
{
"type": "github-release",
"repo": "https://github.com/technicalpickles/cq",
- "tag": "v0.4.0",
- "name": "cq-0.4.0-aarch64-apple-darwin.tar.gz"
+ "tag": "v0.11.0",
+ "name": "cq-0.11.0-aarch64-apple-darwin.tar.gz"
+ }
+ ],
+ "format": "tar.gz"
+ },
+ "linux-aarch64": {
+ "size": 15371459,
+ "hash": "blake3",
+ "digest": "0018307132bcb9909b42b7b75df0c02dbda068d35a2bc95eaa761f116d76e0b1",
+ "path": "cq-0.11.0-aarch64-unknown-linux-gnu/cq",
+ "providers": [
+ {
+ "url": "https://github.com/technicalpickles/cq/releases/download/v0.11.0/cq-0.11.0-aarch64-unknown-linux-gnu.tar.gz"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/technicalpickles/cq",
+ "tag": "v0.11.0",
+ "name": "cq-0.11.0-aarch64-unknown-linux-gnu.tar.gz"
+ }
+ ],
+ "format": "tar.gz"
+ },
+ "linux-x86_64": {
+ "size": 16405976,
+ "hash": "blake3",
+ "digest": "2692833967c593e04daeb77b683d6ac51c26aebe94513a19dd478011bb276b4e",
+ "path": "cq-0.11.0-x86_64-unknown-linux-gnu/cq",
+ "providers": [
+ {
+ "url": "https://github.com/technicalpickles/cq/releases/download/v0.11.0/cq-0.11.0-x86_64-unknown-linux-gnu.tar.gz"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/technicalpickles/cq",
+ "tag": "v0.11.0",
+ "name": "cq-0.11.0-x86_64-unknown-linux-gnu.tar.gz"
}
],
"format": "tar.gz"
diff --git a/bin/frork b/bin/frork
index 97e529a2..2e7c05f6 100755
--- a/bin/frork
+++ b/bin/frork
@@ -4,18 +4,18 @@
"name": "frork",
"platforms": {
"macos-aarch64": {
- "size": 1888259,
+ "size": 1907116,
"hash": "blake3",
- "digest": "ee42b9eb63726d3f6ad7b35dda284ef07ec1c762c1cfa518595ce0ee57132b86",
+ "digest": "3ad4bafce412760118bf571d6da6569862bac4e985ba1efef6f6e4497e0060f6",
"path": "frork",
"providers": [
{
- "url": "https://github.com/kejadlen/frork/releases/download/v2026-08-29+d4a7805/frork-aarch64-apple-darwin.tar.gz"
+ "url": "https://github.com/kejadlen/frork/releases/download/v2026-11-03+e7873dc/frork-aarch64-apple-darwin.tar.gz"
},
{
"type": "github-release",
"repo": "https://github.com/kejadlen/frork",
- "tag": "v2026-08-29+d4a7805",
+ "tag": "v2026-11-03+e7873dc",
"name": "frork-aarch64-apple-darwin.tar.gz"
}
],
diff --git a/bin/fzf b/bin/fzf
index 14cb35c1..fb1a0774 100755
--- a/bin/fzf
+++ b/bin/fzf
@@ -20,6 +20,42 @@
}
],
"format": "tar.gz"
+ },
+ "linux-aarch64": {
+ "size": 2078357,
+ "hash": "blake3",
+ "digest": "8c9f1b93a19ce6c6c9536bcdc585d943c09dd1b3b7a02029aa667725018bbc61",
+ "path": "fzf",
+ "providers": [
+ {
+ "url": "https://github.com/junegunn/fzf/releases/download/v0.74.5/fzf-0.74.5-linux_arm64.tar.gz"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/junegunn/fzf",
+ "tag": "v0.74.5",
+ "name": "fzf-0.74.5-linux_arm64.tar.gz"
+ }
+ ],
+ "format": "tar.gz"
+ },
+ "linux-x86_64": {
+ "size": 2291079,
+ "hash": "blake3",
+ "digest": "936969d1cb9feab256180ede9c5ca58bd8b9bcea261b5e5d3d840a4f41bf2ac4",
+ "path": "fzf",
+ "providers": [
+ {
+ "url": "https://github.com/junegunn/fzf/releases/download/v0.74.5/fzf-0.74.5-linux_amd64.tar.gz"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/junegunn/fzf",
+ "tag": "v0.74.5",
+ "name": "fzf-0.74.5-linux_amd64.tar.gz"
+ }
+ ],
+ "format": "tar.gz"
}
}
}
diff --git a/bin/jj b/bin/jj
index 9546456e..16e5cb92 100755
--- a/bin/jj
+++ b/bin/jj
@@ -4,19 +4,55 @@
"name": "jj",
"platforms": {
"macos-aarch64": {
- "size": 10074305,
+ "size": 10642035,
"hash": "blake3",
- "digest": "7f1b8cc7da15cc098d7770e19d92beea222e51b0e03eaa3bb50981670948db76",
+ "digest": "8c41a11861940584cdb9c73f636d66893e0a05da81ca19c5921aa31b09c6439d",
"path": "jj",
"providers": [
{
- "url": "https://github.com/jj-vcs/jj/releases/download/v0.46.0/jj-v0.46.0-aarch64-apple-darwin.tar.gz"
+ "url": "https://github.com/jj-vcs/jj/releases/download/v0.47.1/jj-v0.47.1-aarch64-apple-darwin.tar.gz"
},
{
"type": "github-release",
"repo": "https://github.com/jj-vcs/jj",
- "tag": "v0.46.0",
- "name": "jj-v0.46.0-aarch64-apple-darwin.tar.gz"
+ "tag": "v0.47.1",
+ "name": "jj-v0.47.1-aarch64-apple-darwin.tar.gz"
+ }
+ ],
+ "format": "tar.gz"
+ },
+ "linux-aarch64": {
+ "size": 10989474,
+ "hash": "blake3",
+ "digest": "93d913f0c1018a01db6c2c6518b63b77a4bb47aa3cac44a5db226ee0aa3f3be5",
+ "path": "jj",
+ "providers": [
+ {
+ "url": "https://github.com/jj-vcs/jj/releases/download/v0.47.1/jj-v0.47.1-aarch64-unknown-linux-musl.tar.gz"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/jj-vcs/jj",
+ "tag": "v0.47.1",
+ "name": "jj-v0.47.1-aarch64-unknown-linux-musl.tar.gz"
+ }
+ ],
+ "format": "tar.gz"
+ },
+ "linux-x86_64": {
+ "size": 11743512,
+ "hash": "blake3",
+ "digest": "1eefd06a02a5c31382cad4f4f2a85ecb75e793213274d918978f643cd74b010e",
+ "path": "jj",
+ "providers": [
+ {
+ "url": "https://github.com/jj-vcs/jj/releases/download/v0.47.1/jj-v0.47.1-x86_64-unknown-linux-musl.tar.gz"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/jj-vcs/jj",
+ "tag": "v0.47.1",
+ "name": "jj-v0.47.1-x86_64-unknown-linux-musl.tar.gz"
}
],
"format": "tar.gz"
diff --git a/bin/jq b/bin/jq
index 30be5414..76319bbd 100755
--- a/bin/jq
+++ b/bin/jq
@@ -19,6 +19,40 @@
"name": "jq-macos-arm64"
}
]
+ },
+ "linux-aarch64": {
+ "size": 1797688,
+ "hash": "blake3",
+ "digest": "428869e0c7c8b86cc2422a2b1e034cb026776795fb5df707bca3f889c6256626",
+ "path": "jq",
+ "providers": [
+ {
+ "url": "https://github.com/jqlang/jq/releases/download/jq-1.8.2/jq-linux-arm64"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/jqlang/jq",
+ "tag": "jq-1.8.2",
+ "name": "jq-linux-arm64"
+ }
+ ]
+ },
+ "linux-x86_64": {
+ "size": 2267912,
+ "hash": "blake3",
+ "digest": "4311c64431be63fb82189e7e0950b060b39046e865ebb796ec3fa974309c4986",
+ "path": "jq",
+ "providers": [
+ {
+ "url": "https://github.com/jqlang/jq/releases/download/jq-1.8.2/jq-linux-amd64"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/jqlang/jq",
+ "tag": "jq-1.8.2",
+ "name": "jq-linux-amd64"
+ }
+ ]
}
}
}
diff --git a/bin/just b/bin/just
index e9573f63..ae7e3b57 100755
--- a/bin/just
+++ b/bin/just
@@ -4,19 +4,55 @@
"name": "just",
"platforms": {
"macos-aarch64": {
- "size": 2146038,
+ "size": 2174952,
"hash": "blake3",
- "digest": "7c37991ba1868285631b001a886939d134d5ee83dc1ff64023979681bf9f1d76",
+ "digest": "2f0ec62b393d69332f4fa6a75a4f3ddf32eaf98f9e320769d9cfa8fd711adf70",
"path": "just",
"providers": [
{
- "url": "https://github.com/casey/just/releases/download/1.58.0/just-1.58.0-aarch64-apple-darwin.tar.gz"
+ "url": "https://github.com/casey/just/releases/download/1.59.0/just-1.59.0-aarch64-apple-darwin.tar.gz"
},
{
"type": "github-release",
"repo": "https://github.com/casey/just",
- "tag": "1.58.0",
- "name": "just-1.58.0-aarch64-apple-darwin.tar.gz"
+ "tag": "1.59.0",
+ "name": "just-1.59.0-aarch64-apple-darwin.tar.gz"
+ }
+ ],
+ "format": "tar.gz"
+ },
+ "linux-aarch64": {
+ "size": 2343258,
+ "hash": "blake3",
+ "digest": "afb69f25939097296b45c74bdab06ff8d1085152bd213b22d1b5f626948c1bfa",
+ "path": "just",
+ "providers": [
+ {
+ "url": "https://github.com/casey/just/releases/download/1.59.0/just-1.59.0-aarch64-unknown-linux-musl.tar.gz"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/casey/just",
+ "tag": "1.59.0",
+ "name": "just-1.59.0-aarch64-unknown-linux-musl.tar.gz"
+ }
+ ],
+ "format": "tar.gz"
+ },
+ "linux-x86_64": {
+ "size": 2572537,
+ "hash": "blake3",
+ "digest": "37d22e85e3e950f8e03c85cc8572a60d17325b481bdd1184b9cc1e0c52540516",
+ "path": "just",
+ "providers": [
+ {
+ "url": "https://github.com/casey/just/releases/download/1.59.0/just-1.59.0-x86_64-unknown-linux-musl.tar.gz"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/casey/just",
+ "tag": "1.59.0",
+ "name": "just-1.59.0-x86_64-unknown-linux-musl.tar.gz"
}
],
"format": "tar.gz"
diff --git a/bin/ranger b/bin/ranger
index ccaa33bb..a06af8c6 100755
--- a/bin/ranger
+++ b/bin/ranger
@@ -4,22 +4,40 @@
"name": "ranger",
"platforms": {
"macos-aarch64": {
- "size": 3280335,
+ "size": 3297723,
"hash": "blake3",
- "digest": "b1acc4f9c86d25d03adbec6568b65283d2eb6a1aec25dc0e3cd3671a979eb653",
+ "digest": "de838954e25bd54dd44c39e51a6f02c72ee1d5ca91d9f614d28ef8fd439221e8",
"path": "ranger",
"providers": [
{
- "url": "https://github.com/kejadlen/ranger/releases/download/v2026-10-15+85beda2/ranger-aarch64-apple-darwin.tar.gz"
+ "url": "https://github.com/kejadlen/ranger/releases/download/v2026-11-04+875cca9/ranger-aarch64-apple-darwin.tar.gz"
},
{
"type": "github-release",
"repo": "https://github.com/kejadlen/ranger",
- "tag": "v2026-10-15+85beda2",
+ "tag": "v2026-11-04+875cca9",
"name": "ranger-aarch64-apple-darwin.tar.gz"
}
],
"format": "tar.gz"
+ },
+ "linux-aarch64": {
+ "size": 3629972,
+ "hash": "blake3",
+ "digest": "2e8adc1b1c30f4ceba11fa6f55fabeb5f67517ef71dd4382a8f8f366ff0aa3f9",
+ "path": "ranger",
+ "providers": [
+ {
+ "url": "https://github.com/kejadlen/ranger/releases/download/v2026-11-04+875cca9/ranger-aarch64-unknown-linux-gnu.tar.gz"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/kejadlen/ranger",
+ "tag": "v2026-11-04+875cca9",
+ "name": "ranger-aarch64-unknown-linux-gnu.tar.gz"
+ }
+ ],
+ "format": "tar.gz"
}
}
}
diff --git a/bin/sops b/bin/sops
index 112c4a51..84154056 100755
--- a/bin/sops
+++ b/bin/sops
@@ -19,6 +19,40 @@
"name": "sops-v3.13.3.darwin.arm64"
}
]
+ },
+ "linux-aarch64": {
+ "size": 48300194,
+ "hash": "blake3",
+ "digest": "9213c5ad5ce6b89d14b34c67191a4aa6887283b89b057950915f50db03312037",
+ "path": "sops",
+ "providers": [
+ {
+ "url": "https://github.com/getsops/sops/releases/download/v3.13.3/sops-v3.13.3.linux.arm64"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/getsops/sops",
+ "tag": "v3.13.3",
+ "name": "sops-v3.13.3.linux.arm64"
+ }
+ ]
+ },
+ "linux-x86_64": {
+ "size": 52121762,
+ "hash": "blake3",
+ "digest": "2e0d82a8f6389f7a5340c187bc86eeefc9b4cf06b7a4604bbdbc32a5346bb052",
+ "path": "sops",
+ "providers": [
+ {
+ "url": "https://github.com/getsops/sops/releases/download/v3.13.3/sops-v3.13.3.linux.amd64"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/getsops/sops",
+ "tag": "v3.13.3",
+ "name": "sops-v3.13.3.linux.amd64"
+ }
+ ]
}
}
}
diff --git a/bin/tree-sitter b/bin/tree-sitter
index c5cb7b53..b5df9026 100755
--- a/bin/tree-sitter
+++ b/bin/tree-sitter
@@ -4,22 +4,58 @@
"name": "tree-sitter",
"platforms": {
"macos-aarch64": {
- "size": 6833180,
+ "size": 7372537,
"hash": "blake3",
- "digest": "1be7b8abb78b0fe9eb1fbd134360489bef631156001b6612d8908e7f355247f4",
+ "digest": "8a4f7bf32403b0feddb4f77789f0aeefb9fc17f859febf5372908d996e0d7a1a",
"path": "tree-sitter",
"providers": [
{
- "url": "https://github.com/tree-sitter/tree-sitter/releases/download/v0.26.12/tree-sitter-macos-arm64.gz"
+ "url": "https://github.com/tree-sitter/tree-sitter/releases/download/v0.27.1/tree-sitter-macos-arm64.gz"
},
{
"type": "github-release",
"repo": "https://github.com/tree-sitter/tree-sitter",
- "tag": "v0.26.12",
+ "tag": "v0.27.1",
"name": "tree-sitter-macos-arm64.gz"
}
],
"format": "gz"
+ },
+ "linux-aarch64": {
+ "size": 8102735,
+ "hash": "blake3",
+ "digest": "bdec51bb51e5300127f9c08bc8eb26c6946360136e4c14ee3a8b09255b2258ed",
+ "path": "tree-sitter",
+ "providers": [
+ {
+ "url": "https://github.com/tree-sitter/tree-sitter/releases/download/v0.27.1/tree-sitter-linux-arm64.gz"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/tree-sitter/tree-sitter",
+ "tag": "v0.27.1",
+ "name": "tree-sitter-linux-arm64.gz"
+ }
+ ],
+ "format": "gz"
+ },
+ "linux-x86_64": {
+ "size": 8702418,
+ "hash": "blake3",
+ "digest": "ce36adfd68a41d37d97c2f7a9c9d73ea0382719b651a167e0c2365bafcf07bdb",
+ "path": "tree-sitter",
+ "providers": [
+ {
+ "url": "https://github.com/tree-sitter/tree-sitter/releases/download/v0.27.1/tree-sitter-linux-x64.gz"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/tree-sitter/tree-sitter",
+ "tag": "v0.27.1",
+ "name": "tree-sitter-linux-x64.gz"
+ }
+ ],
+ "format": "gz"
}
}
}
diff --git a/bin/zizmor b/bin/zizmor
index fd25fefe..eb4b1d99 100755
--- a/bin/zizmor
+++ b/bin/zizmor
@@ -4,22 +4,58 @@
"name": "zizmor",
"platforms": {
"macos-aarch64": {
- "size": 8490680,
+ "size": 8597835,
"hash": "blake3",
- "digest": "117538f5115b97fffff03a478790a1c8e94f63716aabf34bf492ed4f7d7a9bac",
+ "digest": "4df47dd4232eec8e9c2c6c1ec16308a4250a4c95f88c253d72f659df65e45c6f",
"path": "zizmor",
"providers": [
{
- "url": "https://github.com/zizmorcore/zizmor/releases/download/v1.31.1/zizmor-aarch64-apple-darwin.tar.gz"
+ "url": "https://github.com/zizmorcore/zizmor/releases/download/v1.32.0/zizmor-aarch64-apple-darwin.tar.gz"
},
{
"type": "github-release",
"repo": "https://github.com/zizmorcore/zizmor",
- "tag": "v1.31.1",
+ "tag": "v1.32.0",
"name": "zizmor-aarch64-apple-darwin.tar.gz"
}
],
"format": "tar.gz"
+ },
+ "linux-aarch64": {
+ "size": 9004349,
+ "hash": "blake3",
+ "digest": "1dde7f7f1003d80ef285c5dbd9c1979d93a169d3db39f6d86b84436a320a7edb",
+ "path": "zizmor",
+ "providers": [
+ {
+ "url": "https://github.com/zizmorcore/zizmor/releases/download/v1.32.0/zizmor-aarch64-unknown-linux-gnu.tar.gz"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/zizmorcore/zizmor",
+ "tag": "v1.32.0",
+ "name": "zizmor-aarch64-unknown-linux-gnu.tar.gz"
+ }
+ ],
+ "format": "tar.gz"
+ },
+ "linux-x86_64": {
+ "size": 9418466,
+ "hash": "blake3",
+ "digest": "2b26e9f38bb0bd636dceb7d95d54e056c5aaae4db2f65b27506d08d4c567c0df",
+ "path": "zizmor",
+ "providers": [
+ {
+ "url": "https://github.com/zizmorcore/zizmor/releases/download/v1.32.0/zizmor-x86_64-unknown-linux-gnu.tar.gz"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/zizmorcore/zizmor",
+ "tag": "v1.32.0",
+ "name": "zizmor-x86_64-unknown-linux-gnu.tar.gz"
+ }
+ ],
+ "format": "tar.gz"
}
}
}