Skip to content

SnapBot is an automation tool designed to help maintain Snap Streaks effortlessly. It logs into Snapchat, captures snaps with custom captions, and sends them to your best friends or groups, all through an easy-to-use script.

Notifications You must be signed in to change notification settings

Emmanuel-Rods/SnapBot

Repository files navigation

SnapBot v2

SnapBot is a modern, browser-level automation library designed specifically for Snapchat. Built on top of Puppeteer, SnapBot enables developers to create powerful Snapchat bots without relying on internal APIs or reverse engineering — all through the familiar browser environment.

Whether you're automating daily snaps, managing multiple accounts, or building complex chat workflows, SnapBot abstracts the hard parts so you can focus on what matters: the logic and creativity behind your automation.

💼 Use Cases

  • Daily content distribution via snaps
  • Streak automation for agencies or influencers
  • CRM-style customer engagement bots
  • AI-integrated messaging workflows
  • Custom Snapchat tools for businesses

🚀 Features

  • Image Uploads: Send images directly through the bot.
  • Full Chat Automation: Automate sending and receiving messages.
  • Snap Shortcuts: Quickly send snaps to predefined contacts.
  • Smart Notification Blocking: Prevent unwanted notifications during automation.
  • Advanced Contact Handling: Manage contacts efficiently within the bot.
  • Multiple Account Support: Handle multiple Snapchat accounts simultaneously.
  • Custom Captions: Send snaps with personalized captions.
  • Snapstreak Maintenance: Ensure your streaks never break again.

📦 Installation

  1. Clone the repository:

    git clone https://github.com/Emmanuel-Rods/SnapBot
  2. Navigate to the project directory:

    cd SnapBot
  3. Install the necessary dependencies:

    npm install
  4. Set up environment variables:

    cp .env.example .env

Edit the .env file and add your Snapchat credentials:

USER_NAME=<Your Snapchat Username>
USER_PASSWORD=<Your Snapchat Password>

🛠️ Usage

To run the bot, use the following command:

npm run bot

This command will start SnapBot, logging into Snapchat, capturing a snap, and sending it to your specified contacts.

If you run into a CAPTCHA when using SnapBot, see this guide for a solution:
Bypass CAPTCHA

📚 Available Methods

SnapBot provides a comprehensive set of methods to interact with Snapchat:

  • launchSnapchat(config): Opens Snapchat in a browser. Set headless to false in the config to see the browser.
  • login(credentials): Logs into Snapchat using the provided credentials.
  • isLogged(): Checks if the user is currently logged in.
  • captureSnap(options): Takes a snap and applies a caption.
  • send(person): Sends the snap to the specified recipient(s).
  • closeBrowser(): Closes the browser session.
  • screenshot(options): Saves a screenshot of the current screen state.
  • logout(): Logs out of the current Snapchat account, allowing you to log in with another account without closing the browser.
  • wait(time): Pauses the script for a specified duration (in milliseconds).
  • openFriendRequests(): Opens the friend requests section.
  • listRecipients(): Lists all available recipients.
  • sendMessage(options): Sends a message with the specified options.
  • saveCookies(username): Saves the current session cookies for the given username.
  • useCookies(username): Loads saved session cookies for the given username.
  • extractChatData(chatID): Extracts chat data for the specified chat ID.
  • userStatus(): Retrieves the current user's status.
  • blockTypingNotifications(boolean): Enables or disables typing notifications based on the boolean value.
  • useShortcut(shortcutsArray): Applies predefined shortcuts from the provided array.

📖 Documentation

For detailed information on each method and advanced usage, please refer to the docs.md file in the repository.

🤝 Contributing

We welcome contributions! If you have ideas, feature requests, bug reports, or improvements for the documentation:

  • 📬 Open an issue on GitHub
  • ✉️ Email suggestions to [email protected]
  • 📝 Help improve the README or docs.md — every edit counts!

Whether it’s code, feedback, or typo fixes — your support makes SnapBot better for everyone. 💛

🧩 Stability Notice

SnapBot relies heavily on DOM selectors, which means updates to the Snapchat web interface can occasionally break its functionality.

I’m actively working on an auto-update system to detect and adapt to these changes — and your help is welcome!

If you're interested in helping build this system, feel free to:

Together we can make SnapBot more stable and smarter. 🧠✨

🚀 Showcase Your Bots

Built something cool using SnapBot? We’d love to feature your creations in our showcase! Share your bots with us by opening an issue or sending an email to [email protected], and get your project highlighted for the community to see.

📝 TODO

  • Add comprehensive JSDoc comments for all methods and functions
  • Implement better error handling and user-friendly error messages

Warning

This project is intended for educational and research purposes only. The developers and contributors are not responsible for any misuse or damages resulting from the use of this software. Users are solely responsible for ensuring their compliance with all applicable laws and terms of service.

📬 Contact

For any queries or contributions, feel free to reach out at: [email protected]

About

SnapBot is an automation tool designed to help maintain Snap Streaks effortlessly. It logs into Snapchat, captures snaps with custom captions, and sends them to your best friends or groups, all through an easy-to-use script.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published