ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที เข้าสู่ระบบด้วย Google เพื่อเขียนรีวิวได้แล้วต้นแบบ · อัปเดตทุก 30 นาที
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · วิธีติดตั้งภาษาไทยทุกตัว

anodizer

โดย tj-smith47รุ่น 0.30.0i★ 7iรันบนเครื่อง
ชื่อใน registryio.github.tj-smith47/anodizer

วิธีติดตั้ง

ใช้ทำอะไรได้

ยังไม่มีคำอธิบายภาษาไทย ดูข้อเท็จจริงด้านล่าง หรือเปิดคำอธิบายต้นฉบับจากผู้ทำ

  • ต่อแบบ ติดตั้งในเครื่อง
  • บัญชีหรือคีย์ ไม่ต้องใส่คีย์
  • หมวด เครื่องมือนักพัฒนา
คำอธิบายต้นฉบับจากผู้ทำ (อังกฤษ)
Rust release tooling — drop-in GoReleaser parity + Rust extras.

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ผลตรวจผ่าน 3/3 · ทำงานบนเครื่องคุณ · ✓ ตรวจคำสั่งแล้ว 13 พ.ย. 2569

ขั้นแรก: คุณใช้ AI ตัวไหน

เลือกแอปที่คุณใช้ ขั้นตอนจะขึ้นด้านล่าง

ต่อกับ Claude ได้ แต่ต้องเตรียมก่อน

ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ

  1. ลง Docker ในเครื่อง

    ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Docker

    เปิดหน้าดาวน์โหลด Docker ↗

  2. เปิดไฟล์ตั้งค่าของแอป Claude บนคอม

    SettingsDeveloperEdit Config

  3. วางค่าตั้งนี้แล้วบันทึกไฟล์

    {
      "mcpServers": {
        "anodizer": {
          "command": "docker",
          "args": [
            "run",
            "-i",
            "--rm",
            "ghcr.io/tj-smith47/anodizer"
          ]
        }
      }
    }
  4. ปิดแอป Claude แล้วเปิดใหม่

  5. ลองเลย

    ใช้ anodizer บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า Claude บอกว่ากำลังใช้ anodizer หรือมีชื่อเครื่องมือของ anodizer ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

ChatGPT ยังต่อ anodizer ไม่ได้

anodizer ต้องติดตั้งในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะตัวที่ทำงานบนเว็บ

คุณทำแบบนี้แทนได้

ก · ใช้แอปที่ต่อ anodizer ได้

  • ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
  • ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)
  • ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)
  • ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)

ข · ตัวอื่นในหมวด เครื่องมือนักพัฒนา ที่ต่อกับ ChatGPT ได้

เลือกจากตัวที่ใช้มากในหมวดเดียวกัน เฉพาะตัวที่ต่อด้วยที่อยู่ได้โดยไม่ต้องใส่คีย์

ต่อกับ Claude Code ได้ แต่ต้องเตรียมก่อน

ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)

  1. ลง Docker ในเครื่อง

    ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Docker

    เปิดหน้าดาวน์โหลด Docker ↗

  2. เปิด Terminal

    Mac: กด Command+Space พิมพ์ Terminal · Windows: เปิด PowerShell

  3. วางคำสั่งนี้แล้วกด Enter

    claude mcp add --scope user anodizer -- docker run -i --rm ghcr.io/tj-smith47/anodizer
  4. พิมพ์ /mcp ใน Claude Code

    ต้องเห็น anodizer ในรายการและขึ้นว่าเชื่อมต่อแล้ว

  5. ลองเลย

    ใช้ anodizer บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า Claude Code บอกว่ากำลังใช้ anodizer หรือมีชื่อเครื่องมือของ anodizer ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

ต่อกับ Cursor ได้ แต่ต้องเตรียมก่อน

ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)

  1. ลง Docker ในเครื่อง

    ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Docker

    เปิดหน้าดาวน์โหลด Docker ↗

  2. กดปุ่มนี้เพื่อเปิด Cursor

    เปิดใน Cursor

    Cursor จะถามยืนยันการติดตั้ง ให้กด Install

  3. เปิดแชตของ AI ใน Cursor โหมด Agent

  4. ลองเลย

    ใช้ anodizer บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า Cursor บอกว่ากำลังใช้ anodizer หรือมีชื่อเครื่องมือของ anodizer ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Cursor เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

ต่อกับ VS Code ได้ แต่ต้องเตรียมก่อน

ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)

  1. ลง Docker ในเครื่อง

    ทำครั้งเดียว ใช้ได้กับทุกตัวที่ต้องใช้ Docker

    เปิดหน้าดาวน์โหลด Docker ↗

  2. กดปุ่มนี้เพื่อเปิด VS Code

    เปิดใน VS Code

    VS Code จะถามยืนยันการติดตั้ง ให้กด Install

  3. เปิดแชตของ AI ใน VS Code โหมด Agent

  4. ลองเลย

    ใช้ anodizer บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง

    ✓ ถ้า VS Code บอกว่ากำลังใช้ anodizer หรือมีชื่อเครื่องมือของ anodizer ขึ้นในคำตอบ แปลว่าต่อสำเร็จ

ชื่อเมนูตรวจกับหน้าช่วยเหลือของ VS Code เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป

โปรแกรมอื่นที่ใช้ MCP ได้ เช่น Windsurf, Zed หรือ Gemini CLI มีวิธีเพิ่มต่างกัน ดูวิธีของแต่ละตัวในหน้ารวมโปรแกรม

ดูโปรแกรมที่ใช้ MCP ทั้งหมด →

ค่าตั้งแบบไฟล์ JSON อยู่ในหัวข้อ “สำหรับคนเขียนโค้ด” ด้านล่าง

ติดตรงไหน? ถามคนที่ใช้ anodizer อยู่💬 พูดคุย →
สำหรับคนเขียนโค้ด: คำสั่ง Terminal และค่าตั้ง JSON

ติดตั้งในเครื่อง

Claude Code

claude mcp add --scope user anodizer -- docker run -i --rm ghcr.io/tj-smith47/anodizer

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "anodizer": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/tj-smith47/anodizer"
      ]
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "anodizer": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/tj-smith47/anodizer"
      ]
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "anodizer": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/tj-smith47/anodizer"
      ]
    }
  }
}

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

สรุป

ดาวน์โหลดต่อสัปดาห์i
ไม่มียอดใน npm/PyPI
licensei
Apache-2.0
การเชื่อมต่อ
รันบนเครื่อง
รุ่นล่าสุดi
0.30.0
ส่งเข้า registryi
15 ต.ค. 2569
แก้โค้ดล่าสุดi
7 พ.ย. 2569
ผู้ทำ
tj-smith47
แพ็กเกจ
oci: ghcr.io/tj-smith47/anodizer
เว็บผู้ทำ
github.com
สถานะใน registry
ใช้งานอยู่

ใช้กับโปรแกรมไหนได้

ดูจากแบบการต่อของ server ตัวนี้ และเอกสารของผู้ทำโปรแกรมแต่ละตัว ตรวจเมื่อ 10 พ.ย. 2569

ติดตั้งบนเครื่องได้ใน

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

ดูโปรแกรมทั้งหมดพร้อมข้อดีข้อเสีย →

คู่มือที่เกี่ยวข้อง

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 13 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub tj-smith47 ซึ่งเป็นเจ้าของ repo

  • ✓ ผ่าน

    ยังมีคนดูแล

    มีการแก้โค้ดล่าสุด 6 วันที่ผ่านมา

  • ✓ ผ่าน

    มีสัญญาอนุญาต (license)

    ใช้ Apache-2.0

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

พูดคุย

ถาม แชร์เคล็ดลับ หรือแจ้งว่าใช้ไม่ได้ เรียงตามที่คนกดว่ามีประโยชน์

ยังไม่มีใครโพสต์ ถามหรือแชร์เป็นคนแรกได้เลย

ข้อความในส่วนนี้เขียนโดยผู้ใช้ ไม่ใช่ทีม PopNx

เข้าสู่ระบบด้วย Google เพื่อโพสต์

รีวิวจากผู้ใช้

ยังไม่มีรีวิว

เข้าสู่ระบบด้วย Google เพื่อเขียนรีวิว

เทียบกับตัวอื่นในหมวด เครื่องมือนักพัฒนาi

  • ดาวมากกว่า 88% ของอีก 5834 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 51% ของอีก 5834 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 5834 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

anodizer ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด 6 วันที่ผ่านมา และส่งรุ่นล่าสุด (0.30.0) เข้า registry 29 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Docker ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี REA, GitHub, Serena MCP: the IDE for your agent

ตัวอื่นในหมวดเดียวกัน

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

REA

แกะการทำงานของโปรแกรมและแอปจากเทอร์มินัลหรือจาก AI

โดย morlutoใช้กันมาก↓ 388.7K/สัปดาห์★ 455.4Kอัปเดต เมื่อวาน

รันบนเครื่อง

GitHub

server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้

โดย githubใช้กันมาก★ 34.4Kอัปเดต 10 วันที่ผ่านมา

บนเครื่องหรือคลาวด์

Serena MCP: the IDE for your agent

A powerful toolkit for coding, providing semantic retrieval and editing capabilities.

โดย oraiosใช้กันมาก↓ 35.2K/สัปดาห์★ 31.3Kอัปเดต 6 เดือนที่ผ่านมา

รันบนเครื่อง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

anodizer

The release pipeline built for Rust — workspace-aware, reproducible, and signed by default.

Anodizer reads a declarative config file and runs your entire release from a single anodizer release command: build, archive, checksum, changelog, sign, release, publish, and announce. It's built around the Rust ecosystem — Cargo workspaces, Cargo.lock-aware version bumps, crates.io, and byte-reproducible artifacts.

See What works (with proof) for a per-feature status — every "live" claim links to a real published artifact you can verify yourself.

Why anodizer?

Your release is a Cargo workspace — not a bag of loose binaries. anodizer is built that way from the ground up.

  • It speaks Cargo. Per-crate release cadences, per-crate tags, and a tag resolver let a single crate and a thirty-crate monorepo share one config. anodizer tag and anodizer bump rewrite Cargo.toml *and* Cargo.lock, then commit and tag — locally by default, and (on --push) push the bump commit and tag atomically — no orphaned bump commit, no hand-rolled git push, no lockfile drift.
  • crates.io, published in the right order. Dependency-aware ordering with sparse-index polling holds each crate until the ones it depends on have propagated — so a workspace publish never races itself into a transient "version not found."
  • Cross-compiles without the toolchain tax. musl, glibc, Windows, and macOS from one machine via cargo-zigbuild or cross. No rustup target add rituals, no per-target CI shards to babysit.
  • Reproducible — and it proves it. Deterministic artifacts by default, then anodizer check determinism rebuilds them and byte-compares. "Reproducible" becomes a fact your CI enforces, not a claim in your release notes.
  • Signing and attestation are first-class. cosign + GPG for binaries, archives, checksums, and images, plus SLSA-style build provenance — wired in a few lines of config.

Then the long tail that Rust authors actually hit: generated per-crate READMEs, cargo-binstall metadata derived straight from your config (no hand-maintained pkg-url that 404s), version_files to pin your docs and install scripts to the released version, and post-release install smoke tests that catch a broken artifact before your users do.

Already know GoReleaser? anodizer's {{ .Field }} template syntax will feel right at home. Moving from cargo-dist, release-plz, or cargo-release? The migration guides map your setup straight over.

Features

Build

  • Cross-platform builds via cargo-zigbuild, cross, or native cargo build
  • Per-build hooks (pre/post), environment variables, feature flags, and target overrides
  • UPX binary compression with per-target filtering
  • Workspace support with per-crate independent release cadences

Package

  • Archives in tar.gz, tar.xz, tar.zst, zip, gz, or raw binary format with OS-specific overrides
  • Linux packages (.deb, .rpm, .apk, .archlinux, .ipk) via nFPM with full lifecycle scripts
  • Snapcraft snaps with prime-dir architecture
  • macOS DMG disk images and PKG installers
  • Windows MSI and NSIS installers
  • Flatpak bundles
  • AppImage portable Linux applications
  • Makeself self-extracting archives
  • curl | sh install-script generation — a per-platform asset table derived from your build/archive config (no hand-maintained URLs to 404), with a checksum-verify gate
  • Source RPMs (.src.rpm)
  • Source archives with file filtering
  • SBOM generation (CycloneDX/SPDX)
  • Checksums with SHA-256, SHA-512, SHA3, BLAKE2b, BLAKE2s, BLAKE3, CRC32, MD5, and more — combined or split per-artifact sidecars in bare or coreutils (shasum -c) format

Sign

  • GPG and cosign signing for binaries, archives, checksums, Docker images, and SBOMs
  • Signed git tags (GPG or SSH) using your existing git signing key
  • Multiple independent signing configurations
  • Conditional signing via template expressions
  • Build provenance attestations (SLSA-style) for binaries and artifacts

Publish

  • GitHub/GitLab/Gitea Releases with asset uploads, draft/prerelease detection, header/footer templates; the repository owner and name default to the origin remote
  • crates.io with dependency-aware ordering and index polling
  • Homebrew formula and cask generation
  • Homebrew-core formula bump PRs (bump an existing homebrew-core formula)
  • Scoop manifest generation
  • Chocolatey package generation
  • Winget manifest generation
  • AUR PKGBUILD and .SRCINFO generation
  • Krew plugin manifest generation
  • Nix derivation generation
  • SchemaStore catalog registration for editor autocomplete of your config files
  • MCP registry server-manifest publishing (Model Context Protocol)
  • Docker multi-arch images via docker buildx
  • Blob storage uploads (S3, GCS, Azure)
  • NPM per-platform binary packages and PyPI native binary wheels
  • Keyless OIDC Trusted Publishing for crates.io, npm (with provenance), and PyPI — no stored registry tokens
  • Artifactory, Cloudsmith, Fury, Docker Hub
  • Custom publisher commands

Announce

  • Discord, Slack, Telegram, Teams, Mattermost
  • Email, Reddit, Twitter/X, Mastodon, Bluesky, LinkedIn
  • OpenCollective, Discourse
  • Generic webhooks with custom headers and templates

Advanced

  • Tera templates (Jinja2-like) with GoReleaser-compatible {{ .Field }} syntax
  • Nightly builds with date-based versioning
  • Config includes for shared configuration
  • Split/merge CI for fan-out parallel builds
  • Monorepo support with independent workspaces
  • Auto-tagging from commit message directives
  • Reproducible builds with mod_timestamp and builds_info
  • Version-string file syncing (version_files) to keep docs, scripts, and manifests in lockstep at tag
  • Cross-publisher track promotion (anodizer promote) — flip an already-published artifact to a stable track (snapcraft channels, npm dist-tags, OCI floating tags, GitHub prerelease) with no rebuild
  • Post-release verification with install smoke tests
  • GitHub Actions job summary listing every release, pull request, package and image the run published
  • JSON Schema for editor autocomplete and validation
  • Built-in MCP server (anodizer mcp) exposing the CLI as annotated tools for AI assistants

Installation

Homebrew (macOS/Linux)
brew install tj-smith47/tap/anodizer
Cargo
cargo install anodizer
From source
git clone https://github.com/tj-smith47/anodizer.git

cd anodizer cargo install --path crates/cli

Quick Start

# Generate a starter config from your Cargo workspace

anodizer init > .anodizer.yaml

Validate your config

anodizer check

Check that required tools are available

anodizer healthcheck

Build a snapshot (no publishing)

anodizer release --snapshot

Dry run (full pipeline, no side effects)

anodizer release --dry-run

Bump crate versions from Conventional Commits — rewrites Cargo.toml + Cargo.lock,

no tag (tag separately, or let the release workflow tag for you)

anodizer bump --dry-run --output json # preview the per-crate plan as JSON anodizer bump # infer patch/minor/major per crate since its last tag anodizer bump minor --package mycrate # force a level for one crate anodizer bump --workspace --commit --changelog # bump every member, commit, refresh CHANGELOG.md anodizer bump --pre rc.1 # append a prerelease identifier (0.5.0-rc.1)

Auto-tag from commit directives

(Conventional Commits: feat: → minor, fix: → patch, BREAKING CHANGE: → major)

anodizer tag --dry-run # preview what tag would be created anodizer tag --push --changelog # tag + refresh changelog + push (triggers the release) anodizer tag --sign --push # signed annotated tag (uses git user.signingkey) anodizer tag --custom-tag v0.1.0 # force a tag value, bypassing bump derivation anodizer tag --version 1.2.3 --crate mycrate # pin an exact version for recovery (per-crate mode) anodizer tag rollback "$GITHUB_SHA" # delete anodizer-managed tags at a SHA + revert the bump

Resume a stalled release from a populated dist/ — no rebuild

anodizer continue # resume the publish-only pipeline after a transient failure anodizer continue --merge # fan-in split-build workers, then sign/checksum/release/publish anodizer continue --skip npm,announce # resume but skip named stages/publishers

Run only the publish stages (release / blob / publish) from a completed dist/

anodizer publish --publishers homebrew,scoop # publish to a subset of configured publishers anodizer publish --dry-run # preview the publish chain with no side effects

Promote an already-published artifact to a stable track — no rebuild

anodizer promote --to stable # promote the newest prerelease artifact anodizer promote --to stable --from candidate --dry-run # preview promoting from a named source track anodizer promote --to stable --version v1.2.0 \ --publishers snapcraft,npm # promote a pinned version on chosen publishers

For CI-based releases, set GITHUB_TOKEN (or ANODIZER_GITHUB_TOKEN) as a secret — the release pipeline picks it up automatically.

Configuration

Anodizer uses .anodizer.yaml (or .anodizer.toml) in your project root. Add a schema comment for editor autocomplete:

# yaml-language-server: $schema=https://tj-smith47.github.io/anodizer/schema.json

project_name: myapp

defaults: targets:

  • x86_64-unknown-linux-gnu
  • aarch64-unknown-linux-gnu
  • x86_64-apple-darwin
  • aarch64-apple-darwin
  • x86_64-pc-windows-msvc cross: auto

crates:

  • name: myapp path: "." tag_template: "v{{ Version }}" builds:
  • binary: myapp archives:
  • name_template: "{{ ProjectName }}-{{ Version }}-{{ Os }}-{{ Arch }}" files: [LICENSE, README.md] release: github: owner: myorg # optional: read from the origin remote when omitted name: myapp publish: cargo: {} homebrew_cask: repository: owner: myorg name: homebrew-tap binaries: [myapp]

See the full configuration reference and the template reference for all available fields, variables, and filters.

Real-world adoption: cfgd

cfgd — declarative, GitOps-style machine configuration management — is anodizer's first real-world adopter and dogfoods every shipped publisher. It's a 4-crate workspace (shared lib + CLI + Kubernetes operator + CSI driver) that ships to crates.io (dependency-aware ordering), GitHub Releases,

ตัดมาแค่ช่วงต้น อ่านต่อใน repo