npm release monitor for developers building on Aztec.
Polls the registry and sends a single grouped Slack notification when a new version drops.
Fork this repo on GitHub (click the Fork button), then:
git clone https://github.com/YOUR-USERNAME/aztec-watcher.git
cd aztec-watcher
npm install- Go to api.slack.com/apps > Create New App > From scratch
- Name it (e.g.
aztec-watcher), pick your workspace, click Create App - Left sidebar > Incoming Webhooks > toggle ON
- Add New Webhook to Workspace > pick a channel > Allow
- Copy the webhook URL
npm run build
node dist/cli/index.js init┌ aztec-watcher
│
◆ What are you building?
│ ● dApp / frontend aztec.js, accounts, wallets, pxe
│ ○ Smart contract aztec.js, noir-contracts, simulator
│ ○ Wallet integration accounts, wallets, wallet-sdk, pxe
│ ○ Node / validator aztec-node, sequencer, validator, p2p
│ ○ Faucet / tooling aztec.js, accounts, cli, builder
│
◆ 6 packages pre-selected. Want to see them?
│ Yes
│
● @aztec/aztec.js (Primary client SDK)
│ @aztec/accounts (Schnorr/ECDSA account contracts)
│ @aztec/wallets (Embedded wallet)
│ @aztec/pxe (Private eXecution Environment)
│ @aztec/stdlib (JS types and helpers)
│ @aztec/wallet-sdk (dApp wallet integration SDK)
│
│ You can add or remove packages later in ./aztec-watcher.config.yaml
│
◆ Which releases do you want to track?
│ ○ Stable only latest tag, fewer notifications
│ ● Release candidates rc tag, know before stable lands
│ ○ Both stable and RC latest + rc tags
│ ○ Everything latest, rc, devnet, nightly
│
✓ Config saved. Watching 6 packages.
│
◆ Want to test your Slack webhook now?
│ Yes
│
◆ Paste your Slack webhook URL (only used for this test, not saved anywhere)
│ https://hooks.slack.com/services/...
│
◐ Sending test notification...
✓ Test notification sent. Check your Slack channel.
│
◇ Next: commit and push your config
│ git add aztec-watcher.config.yaml data/state.json && git commit -m "configure aztec-watcher" && git push
│
◇ Add your Slack webhook as a GitHub secret
│ Repo > Settings > Secrets > Actions > SLACK_WEBHOOK_URL
│
└ You only get notified when a version actually changes.
The webhook URL you paste during the test is used once and discarded. It is never saved to any file.
git add aztec-watcher.config.yaml data/state.json
git commit -m "configure aztec-watcher"
git pushOn your repo: Settings > Secrets and variables > Actions > New repository secret
| Name | Value |
|---|---|
SLACK_WEBHOOK_URL |
The webhook URL from step 2 |
Actions tab > click "I understand my workflows, go ahead and enable them".
That's it. The workflow checks every 15 minutes. When a version changes, you get a Slack message:
Aztec 4.1.2-rc.1
@aztec/aztec.js 4.1.1-rc.1 -> 4.1.2-rc.1
@aztec/accounts 4.1.1-rc.1 -> 4.1.2-rc.1
@aztec/wallets 4.1.1-rc.1 -> 4.1.2-rc.1
@aztec/pxe 4.1.1-rc.1 -> 4.1.2-rc.1
npm install @aztec/aztec.js@rc @aztec/accounts@rc @aztec/wallets@rc @aztec/pxe@rc
- Every 15 minutes, GitHub Actions runs
aztec-watcher run - Polls the npm registry for every package in your config
- Compares versions against
data/state.json - If anything changed, groups updates into one Slack message per release (Aztec is a monorepo, 60+ packages bump at once, you get one message not 60)
- Commits updated
state.jsonback to the repo - If Slack is unreachable, state is not saved. Next run retries the same notification.
Edit aztec-watcher.config.yaml directly:
packages:
- name: "@aztec/aztec.js"
tags: [rc, latest]
- name: "@aztec/accounts"
tags: [rc, latest]
check_schnorr_class_id: true
- name: "@aztec/pxe"
tags: [rc, latest]Any npm package works, not just Aztec:
packages:
- name: "viem"
tags: [latest]
- name: "@openzeppelin/contracts"
tags: [latest]Full package list: src/data/packages.ts
export SLACK_WEBHOOK_URL="https://hooks.slack.com/services/..."
npm run build
node dist/cli/index.js runCrontab (every 15 min):
*/15 * * * * cd /path/to/aztec-watcher && SLACK_WEBHOOK_URL=... node dist/cli/index.js run >> ~/.aztec-watcher.log 2>&1- Config uses
${ENV_VAR}placeholders. No secrets in the repo. - The webhook URL pasted during setup test is used once and discarded.
- Only connects to
registry.npmjs.organdhooks.slack.com. - No server, no database, no third-party service.
MIT