Hey folks 👋
So… I built a little thing called CFMan — short for Cloudflare Manager.
If you’ve ever juggled multiple Cloudflare accounts, workers, or pages, you know the pain.
Switching tokens manually, exporting env vars, praying Wrangler doesn’t mix accounts… 😩
Yeah, been there.
That’s why I made CFMan — a beautiful, colorful, emoji-filled CLI that makes it dead simple to manage multiple Cloudflare accounts and deploy Workers or Pages from one place.
🪄 What It Does
CFMan basically wraps around Wrangler, but smarter.
- 🔐 Manages multiple API tokens — securely stored, encrypted, per-account
- 🚀 Deploys Workers/Pages with a single clean command
- ⚡ Runs any Wrangler command but with
--accountflag - 🧠 Automatically uses
npx wranglerif Wrangler isn’t installed globally - 🎨 Pretty CLI output (because yes, even your terminal deserves good design)
🖼️ Here’s What It Looks Like
That’s literally npx cfman --help.
It gives you colors, emojis, examples, and everything you actually need to remember how your tool works. 😅
🚀 Quick Start
# install globally (recommended)
npm install -g cfman
# or just try it
npx cfman --help
Now add your first account:
cfman token add --name production --token cf_xxx
Check what’s going on:
cfman status
And deploy anything:
cfman wrangler --account production pages deploy out
That’s it.
No more exporting tokens or switching profiles like a maniac.
💡 Before CFMan vs After CFMan
Before:
export CLOUDFLARE_API_TOKEN=cf_token_for_client_a
wrangler deploy --env production
export CLOUDFLARE_API_TOKEN=cf_token_for_client_b
wrangler pages deploy out
After:
cfman wrangler --account client-a deploy --env production
cfman wrangler --account client-b pages deploy out
That’s the whole magic.
You keep your sanity, your tokens are isolated, and your deployments stay clean.
🧰 Under the Hood
Built entirely in TypeScript, bundled with tsup, and designed to be fast, tiny, and safe.
CFMan stores your tokens locally under:
- macOS/Linux →
~/.config/cfman/tokens.json - Windows →
%APPDATA%/cfman/tokens.json
All with file permissions set to 600 (so only you can read/write them).
And starting v0.4.0 → CFMan supports Package Provenance, meaning you can cryptographically verify the npm package comes straight from GitHub source.
No shady npm nonsense. 🛡️
📦 Wrangler Integration
You can literally run any Wrangler command:
cfman wrangler --account prod d1 list
cfman wrangler --account staging pages project list
cfman wrangler --account demo kv namespace create test
Even if Wrangler isn’t installed globally.
CFMan falls back to npx wrangler automatically.
⚙️ Setup Wizard
If you’re new, just run:
cfman setup
It walks you through everything interactively — adding tokens, naming accounts, verifying access, etc.
Like a friendly little terminal assistant.
🧠 Why I Built It
Honestly, I got tired of exporting tokens, messing up deployments, and switching environments like some kind of Cloudflare juggler.
There had to be a clean, developer-friendly way to handle all accounts — and make it look nice while doing it.
So here we are.
CFMan. It’s open-source, MIT licensed, and you can grab it here:
👉 github.com/novincode/cfman
💬 Final Thoughts
If you work with Cloudflare Workers or Pages and have multiple accounts (clients, staging, production, whatever), this tool will literally save your life.
Give it a try:
npx cfman --help
And if you like it, drop a ⭐ on the repo — it helps a ton 💜
Let’s make Cloudflare dev experience a little more magical ✨

Top comments (3)
Daaaaaang. Thank you very much. This is awesome. I was currently having the same problem as I had to manage my company's Cloudflare account on my personal Cloudflare account. This is a godsend.
Pretty intuitive as well. Thank you very much for making it simple!
Something really important is that you have to put your account ID in your wrangler config file.
Hi there, Glad to hear that it works for you
I had the same problem just like you :)
Let me know if there's anything