28 stable releases
1.2.7 | Jul 25, 2024 |
---|---|
1.2.6 | Feb 12, 2024 |
1.2.5 | Dec 18, 2023 |
1.2.2 | Jul 26, 2023 |
1.0.5 | Apr 30, 2023 |
#120 in Web programming
685KB
1.5K
SLoC
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.
Prerequisites
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.
Installation
Install from cargo. Add -f
at the end to force update. (cargo install bard-rs -f
)
cargo install bard-rs
or
-
Clone the repository to your local machine:
git clone https://github.com/Alfex4936/Bard-rs
-
Change the working directory:
cd Bard-rs
-
Build the project:
cargo build --release
The executable binary file will be located in the target/release
folder.
Usage
Before using the Google Gemini CLI, you need to obtain your session cookie. To get the session cookie, follow these steps:
- Go to Google Gemini in Chrome.
- Open Chrome Developer Tools (F12 or
Ctrl + Shift + I
). - Go to the "Application" tab.
- Under "Storage" > "Cookies", click on "https://gemini.google.com".
- 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.
(GEMINI_HISTORY
is required in .env
if you want to save the chat history as markdown file everytime.)
bard-rs
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 thatdotenv
cannot read and end up causing no session key error.
PSID=~.
Resolving "SNlM0e not found" Error
[!IMPORTANT] if you are getting "SNlM0e not found. Check your cookies." even with
__Secure-1PSIDTS
- Clear your cookies. (In Chrome, DevTools - Application - Cookies)
- Login again.
- Obtain new
__Secure-1PSID
(Seems like typically contains a numerical identifier representing the logged-in user.)
Commands
- 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.
License
This project is licensed under the MIT License.
Credits:
- acheong08 - Inspired by this Python version.
Dependencies
~18–34MB
~541K SLoC