Telegram Password Manager on Cloudflare Workers
English | 中文

A personal password manager bot for Telegram. Interactive guided input, expiry reminders, temporary email, AES-256-GCM encryption. Runs entirely on Cloudflare Workers free tier.
#save nameThe one-click deploy will set up the Worker for you. After deployment, you still need to complete these steps:
npx wrangler deployFor a smoother experience, consider manual deployment instead.
# Clone the repository
git clone https://github.com/cocojojo5213/mykeys.git
cd mykeys
npm install
# Login to Cloudflare
npx wrangler login
# Create database
npx wrangler d1 create password-bot-db
# Copy the database_id to wrangler.toml
# Edit wrangler.toml
# - Set database_id
# - Set ALLOWED_USER_ID to your Telegram User ID
# - Set EMAIL_DOMAINS if using email feature
# Set secrets (you will be prompted for values)
npx wrangler secret put TELEGRAM_BOT_TOKEN
npx wrangler secret put ENCRYPT_KEY # 32-char string, SAVE THIS
npx wrangler secret put ADMIN_SECRET
# Deploy
npx wrangler deploy
# Initialize database and webhook
curl "https://YOUR_WORKER.workers.dev/init?key=YOUR_ADMIN_SECRET"
curl "https://YOUR_WORKER.workers.dev/setWebhook?key=YOUR_ADMIN_SECRET"
To use the temporary email feature, you need:
# Deploy email worker
npx wrangler deploy --config wrangler-email.toml
# Set secrets for email worker
npx wrangler secret put TELEGRAM_BOT_TOKEN --config wrangler-email.toml
npx wrangler secret put ENCRYPT_KEY --config wrangler-email.toml
Then configure Email Routing in Cloudflare Dashboard:
- Go to your domain > Email > Email Routing
- Enable Email Routing
- Add a Catch-all rule pointing to the mykeys-email worker
You: gpt team
Bot: Saving "gpt team"
Enter website:
You: chat.openai.com
Bot: Enter account:
You: test@mail.com
Bot: Enter password:
You: mypassword123
Bot: Set expiry reminder?
[No] [7 days] [30 days] [90 days] [Custom]
You: (click 30 days)
Bot: Add notes?
[No, save now]
You: monthly renewal
Bot: Saved successfully!
#save server-key @2025-12-31
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjE...
-----END OPENSSH PRIVATE KEY-----
#email myname
(select domain)
Bot: Created myname@yourdomain.com
| Command | Description |
|---|---|
/menu |
Main menu |
/list |
View all entries |
/emails |
View email addresses |
/expiring |
View entries expiring in 30 days |
/cancel |
Cancel current operation |
/help |
Show help |
Send any keyword to search by name or site.
MIT
$ claude mcp add mykeys \
-- python -m otcore.mcp_server <graph>