{"_id":"@ashishsantikari/pbsms","name":"@ashishsantikari/pbsms","dist-tags":{"main":"1.0.0-alpha.1","latest":"1.0.0-alpha.1"},"versions":{"1.0.0-alpha.1":{"name":"@ashishsantikari/pbsms","version":"1.0.0-alpha.1","description":"> [!NOTE] > If you find this tool useful, please **star this repository**! It helps others in need find this solution.","main":"dist/index.cjs","bin":{"pbsms":"dist/index.cjs"},"scripts":{"start":"node src/index.ts","build":"tsc","dev":"node src/index.ts","watch":"node src/index.ts watch","pbsms":"node dist/index.cjs","build:release":"webpack","test":"jest","test:watch":"jest --watch","test:coverage":"jest --coverage"},"keywords":[],"author":"","license":"ISC","repository":{"type":"git","url":"git+https://github.com/ashishsantikari/super-duper-chainsaw.git"},"type":"module","publishConfig":{"access":"public"},"allowImportingTsExtensions":true,"dependencies":{"@types/inquirer":"^9.0.9","@types/node":"^25.0.9","@types/node-forge":"^1.3.14","@types/ws":"^8.18.1","axios":"^1.13.2","chalk":"^5.6.2","commander":"^14.0.2","inquirer":"^13.2.1","node-forge":"^1.3.3","ora":"^9.1.0","typescript":"^5.9.3","ws":"^8.19.0"},"devDependencies":{"@jest/globals":"^30.2.0","@semantic-release/exec":"^7.1.0","@semantic-release/git":"^10.0.1","@types/jest":"^30.0.0","jest":"^30.2.0","semantic-release":"^25.0.2","shebang-loader":"^0.0.1","ts-jest":"^29.4.6","ts-loader":"^9.5.4","webpack":"^5.104.1","webpack-cli":"^6.0.1","webpack-node-externals":"^3.0.0","webpack-obfuscator":"^3.6.0"},"gitHead":"5d6bc97dbb8d7db5506c0b7b9ccd0ed694b59edc","_id":"@ashishsantikari/pbsms@1.0.0-alpha.1","bugs":{"url":"https://github.com/ashishsantikari/super-duper-chainsaw/issues"},"homepage":"https://github.com/ashishsantikari/super-duper-chainsaw#readme","_nodeVersion":"24.12.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-oQNt+dEIu/9sbCsfQAx8qPSvaAzR3A27IkZERCnC7vViDQclNO24pONj1EsmHitBlKD4mIMBMkntAlpqT+aZHw==","shasum":"c3e231c5756f97c963ad3fb9e32ce2678f5542c5","tarball":"https://registry.npmjs.org/@ashishsantikari/pbsms/-/pbsms-1.0.0-alpha.1.tgz","fileCount":26,"unpackedSize":149409,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCY5bdHyBI4tQBe75MvGCv2YFCAj638HbJDceevWHzxlAIgF55qVqn17+2lnX7TF12RcqaPQ1mcKKElRf4qB6Furh8="}]},"_npmUser":{"name":"ashishsantikari","email":"hi@ashishsantikari.info"},"directories":{},"maintainers":[{"name":"ashishsantikari","email":"hi@ashishsantikari.info"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pbsms_1.0.0-alpha.1_1769092441532_0.1857984870615208"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-22T14:34:01.449Z","1.0.0-alpha.1":"2026-01-22T14:34:01.708Z","modified":"2026-01-22T14:34:01.943Z"},"maintainers":[{"name":"ashishsantikari","email":"hi@ashishsantikari.info"}],"description":"> [!NOTE] > If you find this tool useful, please **star this repository**! It helps others in need find this solution.","homepage":"https://github.com/ashishsantikari/super-duper-chainsaw#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/ashishsantikari/super-duper-chainsaw.git"},"bugs":{"url":"https://github.com/ashishsantikari/super-duper-chainsaw/issues"},"license":"ISC","readme":"# pbsms - Pushbullet SMS Viewer\n\n> [!NOTE]\n> If you find this tool useful, please **star this repository**! It helps others in need find this solution.\n\nA CLI tool to view SMS messages from multiple Pushbullet accounts in your terminal.\n\n## Why use this?\n\n### The Problem\nFor expats living outside their home country, receiving SMS (Often required for OTPs on banking, government services, etc.) on a home country SIM card while in an international roaming area can be an unjustified expense. Maintaining active roaming plans just to receive a few text messages is costly.\n\n### The Solution\n`pbsms` solves this by giving you real-time access to your SMS remotely using **Pushbullet**.\n\nWhile official Pushbullet clients exist, they can introduce friction when managing multiple accounts or handling End-to-End (E2E) encryption across devices. This app leverages the existing Pushbullet infrastructure to deliver your SMS messages to your terminal in real-time, handling decryption seamlessly.\n\n### Is this for everyone?\n**No.** If you have a single device and simply want to manually read a text message now and then, the official Pushbullet app or browser extension is likely enough for you.\n\n**This tool is for you if:**\n-   You need a **middleware** to build automated workflows.\n-   You want to programmatically **fetch OTPs** to trigger async operations.\n-   You want to integrate SMS data with **LLMs** (Large Language Models) for analysis.\n-   You are building automated systems like **algorithmic trading bots** that need to react to SMS alerts or confirmations.\n\n### Why Terminal / CLI?\nYou might wonder why this isn't a browser-based web application with a pretty UI. The choice is intentional:\n\n1.  **Data Sovereignty & Security**: A web-based application would typically require cloud services to host the frontend and potentially proxy data. This would require **me** (the developer) to handle your sensitive SMS data, introducing significant data governance and security risks.\n2.  **Privacy**: By keeping this a strictly local CLI application, your data never touches my servers. It goes directly from Pushbullet API -> Your Terminal.\n3.  **Governance**: I want to strictly avoid being a custodian of user data.\n\n**Want a UI?**\nIf a User Interface is important to you, I invite you to **contribute financially** to the project! We can work together to devise a solution that maintains these privacy standards (e.g., a local-only electron app or PWA).\n\n## Subscription & Pricing\nDeveloping, maintaining, and distributing this tool requires significant effort and infrastructure.\n- A **nominal subscription fee** will be introduced after the initial trial period.\n- **Contributors** to the project will receive **priority** for feature requests and support.\n\n## Roadmap\n- **Password Managers**: Currently supports Bitwarden. Support for additional password managers will be added based on user requests.\n\n## License & Access Request\n\nDue to the powerful nature of this tool and the potential for misuse, access is **restricted** and requires a valid license key.\n\n### How to get a License Key\n1.  **Fill out the Request Form**: Submit your details via [this Google Form](#). You must provide accurate and verifiable information.\n2.  **Validation**: Your request will be manually validated.\n3.  **License Key**: Upon approval, you will receive a unique license key to activate the software.\n\n### Compliance & Data Policy\n> [!WARNING]\n> By using this software, you agree to the following terms regarding identity and usage monitoring.\n\nTo ensure this tool is not used for malicious purposes (e.g., intercepting SMS for fraud):\n- **Identity Logging**: Your Pushbullet ID and Device ID will be recorded and stored securely.\n- **Authority reporting**: This data is maintained to assist **local authorities** and **Pushbullet** in the event of any reported misuse or illegal activity involving this software.\n\n## Detailed Setup Guide\n\nBefore installing the CLI, you need to set up the supporting services.\n\n### 1. Pushbullet Setup\nPushbullet is the service that mirrors your SMS from your Android phone to the cloud.\n\n1.  **Create an Account**: Go to [pushbullet.com](https://www.pushbullet.com/) and sign up (Google or Facebook login).\n2.  **Install Android App**: Download the Pushbullet app from the Google Play Store on the phone that has the SIM card you want to monitor.\n3.  **Enable SMS Sync**:\n    -   Open the Android app and sign in with the *same account*.\n    -   Go to the \"SMS\" tab/settings.\n    -   Enable **SMS Synchronization**. You will need to grant the app permissions to \"Send and view SMS messages\".\n4.  **Get Access Token**:\n    -   Go back to [pushbullet.com](https://www.pushbullet.com/) on your computer.\n    -   Go to **Settings** > **Account**.\n    -   Scroll down to **Access Tokens** and click **Create Access Token**.\n    -   **Save this token** securely. You will need it to configure `pbsms`.\n5.  **Enable End-to-End Encryption (REQUIRED)**:\n    > [!IMPORTANT]\n    > **Encryption is MANDATORY**. This app will NOT function if encryption is disabled.\n    -   In the mobile app: Settings > End-to-End Encryption. Set a master password.\n    -   In the web settings: Enable encryption and enter the *same* password.\n\n### 2. Bitwarden Setup (REQUIRED)\nYou **must** use Bitwarden to store your Pushbullet encryption password. This is a non-negotiable security requirement.\n\n1.  **Install Bitwarden CLI**:\n    -   MacOS: `brew install bitwarden-cli`\n    -   npm: `npm install -g @bitwarden/cli`\n    -   Windows/Linux: See [official docs](https://bitwarden.com/help/cli/).\n2.  **Get API Key (for CLI login)**:\n    -   Log in to the [Bitwarden Web Vault](https://vault.bitwarden.com/).\n    -   Go to **Settings** > **Security** > **Keys**.\n    -   Click **View API Key**. You will see `client_id` and `client_secret`.\n3.  **Login via CLI**:\n    ```bash\n    bw login\n    # It will ask for your client_id and client_secret\n    ```\n4.  **Store your Pushbullet Password**:\n    -   Create a new **Login** item in Bitwarden (e.g., named \"Pushbullet Encryption\").\n    -   **Critical**: Put your Pushbullet Encryption Password (from step 1.5) in the **Password** field of this item.\n    -   The CLI will search for this item by name to retrieve the password securely.\n\n## Installation\n\nInstall the tool globally using npm:\n\n```bash\nnpm install -g pbsms\n```\n\n## Usage\n\nOnce installed, you can use the `pbsms` command.\n\n### 1. Add an Account\nLink your Pushbullet account and map the encryption password from Bitwarden.\n\n```bash\npbsms add [name] [pushbullet_token] [bitwarden_item_name]\n```\n\n- `name`: A nickname for this phone (e.g., \"work-sim\").\n- `pushbullet_token`: The token you created in step 1.4.\n- `bitwarden_item_name`: The name of the Bitwarden Login item containing your password.\n\nExample:\n```bash\npbsms add work-sim o.AbCdEfGhI... \"Pushbullet Encryption\"\n```\n\n### 2. List Accounts\nSee all configured accounts.\n\n```bash\npbsms list\n```\n\n### 3. Watch for SMS\nStart watching for new messages in real-time.\n\n```bash\npbsms watch\n```\n\n## Privacy & Security\n- **Encryption**: Supports Pushbullet's End-to-End encryption.\n- **Local Storage**: Your tokens are stored locally in `~/.pushbullet-sms.json`.\n- **Closed Source**: The code is minified for distribution, the source is closed due to security reasons.\n- **No Logging**: The code does not log any sensitive information (beyond the registration data mentioned above).\n- **No Tracking**: The code does not track usage behavior.\n- **Secure Encryption Key**: The code uses a secure encryption key in Bitwarden to decrypt your Pushbullet messages.","readmeFilename":"README.md","_rev":"1-bbb45a6e99e10c5cd3405cddc4645280"}