A powerful Raycast extension for managing your Passbolt passwords directly from your macOS menu bar.
Quickly search and access your Passbolt vault directly from Raycast. View password details, copy credentials, and access TOTP codes with keyboard shortcuts.
Create new password entries in your Passbolt vault with an intuitive form interface. Supports:
Generate secure passwords with customizable options:
Dedicated view for managing Time-based One-Time Passwords (TOTP):
Clone this repository or install from Raycast Store (when published)
Open Raycast preferences β Extensions β Passbolt
Configure the following settings:
https://passbolt.example.com)If your Passbolt instance requires Multi-Factor Authentication (MFA):
JBSWY3DPEHPK3PXP)This extension uses GPGAuth (PGP-based authentication) to securely connect to your Passbolt instance. The authentication flow:
All secrets are encrypted using OpenPGP before transmission and decrypted locally using your private key.
The extension uses the otpauth library to generate TOTP codes. The implementation follows RFC 6238 standards:
import { TOTP } from "otpauth";
private generateTOTP(): string {
if (!this.totpSecret) {
throw new Error("TOTP secret not configured");
}
const totp = new TOTP({
secret: this.totpSecret,
digits: 6,
period: 30,
});
return totp.generate();
}
The Authenticator view scans all resources in your vault, decrypts their secrets, and extracts TOTP configurations stored in the following format:
{
"password": "your-password",
"totp": {
"secret_key": "BASE32ENCODEDSECRET"
}
}
For each resource with TOTP configured, the extension:
This extension integrates with the Passbolt API v5.0.0 using the following endpoints:
/auth/verify.json, /auth/login.json/mfa/verify/totp.json/resources.json/secrets/resource/{id}.json/resource-types.jsonAll API requests include proper session management, cookie handling, and CSRF token support.
# Install dependencies
npm install
# Development mode with hot reload
npm run dev
# Build for production
npm run build
# Lint code
npm run lint
# Fix linting issues
npm run fix-lint
passbolt/
βββ src/
β βββ authenticator.tsx # TOTP authenticator view
β βββ create.tsx # Create password form
β βββ details.tsx # Password details view
β βββ generate-password.tsx # Interactive password generator
β βββ generate-password-quick.tsx # Quick password generator
β βββ search.tsx # Search passwords view
β βββ lib/
β β βββ passbolt.ts # Passbolt API client
β βββ types/
β β βββ index.ts # TypeScript type definitions
β βββ utils/
β βββ password-generator.ts # Password generation utilities
βββ assets/
β βββ extension-icon.png # Extension icon
βββ package.json # Dependencies and commands
βββ README.md # This file
This usually means you're already authenticated. Try logging out from Passbolt web interface and retry.
Add your TOTP secret in the extension preferences. See Getting Your TOTP Secret.
Verify that:
-----BEGIN PGP PRIVATE KEY BLOCK-----)Make sure your Passbolt resources have TOTP configured in the secret data with the structure:
{
"totp": {
"secret_key": "YOUR_BASE32_SECRET"
}
}
Contributions are welcome! Please feel free to submit a Pull Request.
MIT
Built with: