anodizer
ใช้ทำอะไรได้
ยังไม่มีคำอธิบายภาษาไทย ดูข้อเท็จจริงด้านล่าง หรือเปิดคำอธิบายต้นฉบับจากผู้ทำ
- ต่อแบบ ติดตั้งในเครื่อง
- บัญชีหรือคีย์ ไม่ต้องใส่คีย์
- หมวด เครื่องมือนักพัฒนา
คำอธิบายต้นฉบับจากผู้ทำ (อังกฤษ)
Rust release tooling — drop-in GoReleaser parity + Rust extras.ติดตั้ง
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ผลตรวจผ่าน 3/3 · ทำงานบนเครื่องคุณ · ✓ ตรวจคำสั่งแล้ว 13 พ.ย. 2569
ขั้นแรก: คุณใช้ AI ตัวไหน
เลือกแอปที่คุณใช้ ขั้นตอนจะขึ้นด้านล่าง
ต่อกับ Claude ได้ แต่ต้องเตรียมก่อน
ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
เปิดไฟล์ตั้งค่าของแอป Claude บนคอม
SettingsDeveloperEdit Config
วางค่าตั้งนี้แล้วบันทึกไฟล์
{ "mcpServers": { "anodizer": { "command": "docker", "args": [ "run", "-i", "--rm", "ghcr.io/tj-smith47/anodizer" ] } } }ปิดแอป Claude แล้วเปิดใหม่
ลองเลย
ใช้ anodizer บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Claude บอกว่ากำลังใช้ anodizer หรือมีชื่อเครื่องมือของ anodizer ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ChatGPT ยังต่อ anodizer ไม่ได้
anodizer ต้องติดตั้งในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะตัวที่ทำงานบนเว็บ
คุณทำแบบนี้แทนได้
ก · ใช้แอปที่ต่อ anodizer ได้
- ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว) · ใช้ได้เฉพาะแอป Claude บนคอม (Windows หรือ Mac) ไม่ใช่บนเว็บหรือมือถือ
- ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)
- ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)
- ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)
ข · ตัวอื่นในหมวด เครื่องมือนักพัฒนา ที่ต่อกับ ChatGPT ได้
เลือกจากตัวที่ใช้มากในหมวดเดียวกัน เฉพาะตัวที่ต่อด้วยที่อยู่ได้โดยไม่ต้องใส่คีย์
- Sentry✓ ChatGPT
- Compiler Explorer✓ ChatGPT
- GitDiagram✓ ChatGPT
ต่อกับ Claude Code ได้ แต่ต้องเตรียมก่อน
ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)
เปิด Terminal
Mac: กด Command+Space พิมพ์ Terminal · Windows: เปิด PowerShell
วางคำสั่งนี้แล้วกด Enter
claude mcp add --scope user anodizer -- docker run -i --rm ghcr.io/tj-smith47/anodizerพิมพ์ /mcp ใน Claude Code
ต้องเห็น anodizer ในรายการและขึ้นว่าเชื่อมต่อแล้ว
ลองเลย
ใช้ anodizer บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Claude Code บอกว่ากำลังใช้ anodizer หรือมีชื่อเครื่องมือของ anodizer ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Anthropic เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ต่อกับ Cursor ได้ แต่ต้องเตรียมก่อน
ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)
เปิดแชตของ AI ใน Cursor โหมด Agent
ลองเลย
ใช้ anodizer บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า Cursor บอกว่ากำลังใช้ anodizer หรือมีชื่อเครื่องมือของ anodizer ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ Cursor เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
ต่อกับ VS Code ได้ แต่ต้องเตรียมก่อน
ต้องลง Docker ในเครื่องก่อน (ทำครั้งเดียว)
เปิดแชตของ AI ใน VS Code โหมด Agent
ลองเลย
ใช้ anodizer บอกหน่อยว่าทำอะไรให้ฉันได้บ้าง แล้วลองทำให้ดูหนึ่งอย่าง✓ ถ้า VS Code บอกว่ากำลังใช้ anodizer หรือมีชื่อเครื่องมือของ anodizer ขึ้นในคำตอบ แปลว่าต่อสำเร็จ
ชื่อเมนูตรวจกับหน้าช่วยเหลือของ VS Code เมื่อ 11 พ.ย. 2569 · หน้าจอของคุณอาจต่างเล็กน้อยตามรุ่นของแอป
สำหรับคนเขียนโค้ด: คำสั่ง Terminal และค่าตั้ง JSON
ติดตั้งในเครื่อง
Claude Code
claude mcp add --scope user anodizer -- docker run -i --rm ghcr.io/tj-smith47/anodizerClaude 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
- การเชื่อมต่อ
- รันบนเครื่อง
- รุ่นล่าสุด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
รีวิวจากผู้ใช้
ยังไม่มีรีวิว
เทียบกับตัวอื่นในหมวด เครื่องมือนักพัฒนา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 ในเครื่องด้วย
ตัวอื่นในหมวดเดียวกัน
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
GitHub
server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้
Serena MCP: the IDE for your agent
A powerful toolkit for coding, providing semantic retrieval and editing capabilities.
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 tagandanodizer bumprewriteCargo.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-rolledgit 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-zigbuildorcross. Norustup target addrituals, no per-target CI shards to babysit. - Reproducible — and it proves it. Deterministic artifacts by default, then
anodizer check determinismrebuilds 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 nativecargo 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 | shinstall-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
originremote - crates.io with dependency-aware ordering and index polling
- Homebrew formula and cask generation
- Homebrew-core formula bump PRs (bump an existing
homebrew-coreformula) - 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_timestampandbuilds_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,