27 stable releases

1.2.6 Feb 12, 2024
1.2.5 Dec 18, 2023
1.2.2 Jul 26, 2023
1.2.0 Jun 10, 2023
1.0.5 Apr 30, 2023

#2 in #chat-bot

Download history 6/week @ 2023-12-21 1/week @ 2023-12-28 26/week @ 2024-02-08 44/week @ 2024-02-15 62/week @ 2024-02-22 13/week @ 2024-02-29 17/week @ 2024-03-07 43/week @ 2024-03-14 9/week @ 2024-03-28 7/week @ 2024-04-04

67 downloads per month

MIT license

820 lines

Contains (ELF exe/lib, 540KB) upx

Google Gemini CLI

A simple command line interface for interacting with Google Gemini (Previously Bard), written in Rust.

This CLI allows you to save chat history as a Markdown file at a specified absolute or relative path in realtime

and handles graceful exit with Ctrl+C.




You need to have Rust and Cargo installed on your system. If you don't have them, you can install them from the official Rust website.


Install from cargo. Add -f at the end to force update. (cargo install bard-rs -f)

cargo install bard-rs


  1. Clone the repository to your local machine:

    git clone https://github.com/Alfex4936/Bard-rs
  2. Change the working directory:

    cd Bard-rs
  3. Build the project:

    cargo build --release

The executable binary file will be located in the target/release folder.


Before using the Google Gemini CLI, you need to obtain your session cookie. To get the session cookie, follow these steps:

  1. Go to Google Gemini in Chrome.
  2. Open Chrome Developer Tools (F12 or Ctrl + Shift + I).
  3. Go to the "Application" tab.
  4. Under "Storage" > "Cookies", click on "https://gemini.google.com".
  5. Find the cookies with the name __Secure-1PSID (Must) and __Secure-1PSIDTS (Optional), and copy the values.

Now you can use the Google Gemini CLI:

Supported options: -s (__Secure-1PSID cookie), -t (__Secure-1PSIDTS cookie), -m (if present, it'll print other Gemini's responses for your prompt), -p (if present with path, it'll save your chat history as markdown.), -e (if present with .env file location, it'll use that session cookie)

It'll save as your first prompt message. (eg: "Hey yo" -> gemini_hey_yo.md)

bard-rs --psid <your_psid> --psidts <your_psidts> --path ./

bard-rs --psid <your_psid> --path ./

Replace <your_psid> and <your_psidts> with the value you copied from the Developer Tools.

If you don't want to save the chat history as a Markdown file, skip --path:

bard-rs -p <your_psid>

If you don't want to pass that long session in terminal, use .env file (refer to .env_sample)

bard-rs -e .env -p ./

If you prefer not to specify a path, bard-rs will automatically search for the .env file in the following locations: the argument-provided path, the current working directory, and the directory of the bard-rs binary.

(-p is still required if you want to save the chat history as markdown file.)


above command is same as bard-rs -e .env

.env file must contain PSID key. (it is derived from __Secure-1PSID)

![IMPORTANT] Need __Secure-1PSID and __Secure-1PSIDTS

! using echo PSID=... > .env might cause encoding problem that dotenv cannot read and end up causing no session key error.


Resolving "SNlM0e not found" Error

[!IMPORTANT] if you are getting "SNlM0e not found. Check your cookies." even with __Secure-1PSIDTS

  1. Clear your cookies. (In Chrome, DevTools - Application - Cookies)
  2. Login again.
  3. Obtain new __Secure-1PSID (Seems like typically contains a numerical identifier representing the logged-in user.)


  • Type your message and press Enter to send it to Google Gemini.
  • Type !reset to reset the conversation.
  • Type !exit to exit the CLI.
  • Type !show to see other Gemini's answers for your last message.


This project is licensed under the MIT License.


  • acheong08 - Inspired by this Python version.


~496K SLoC