
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
An NPM module for creating GoogleBard chatbot using Bard's reverse-engineered API. With reverse-engineered API functionalities, it empowers developers to harness the full potential of Bard.
__Secure-{account_number}PSID
.
__Secure-1PSID
bard.google.com/u/{account_number}
./u/2
, search for the cookie named __Secure-2PSID
./u/3
, search for the cookie named __Secure-3PSID
.To install the package, run the following command:
npm install googlebard
import { Bard } from "googlebard";
let cookies = `__Secure-1PSID=<YOUR_COOKIE>`;
let bot = new Bard(cookies);
// other code - scroll below to view different functionalities available
inMemory
: optional - if true will not save conversations to disksavePath
: optional - path to save conversations (e.g './conversations.json')proxy
: optional - handles proxy configurationsimport { Bard } from "googlebard";
let cookies = `__Secure-1PSID=<YOUR_COOKIE>`;
let bot = new Bard(cookies, {
inMemory: false,
savePath: "./conversations.json",
proxy: {
host: process.env.PROXY_HOST,
port: process.env.PROXY_PORT,
auth: {
username: process.env.PROXY_USERNAME,
password: process.env.PROXY_PASSWORD,
},
protocol: "http",
},
});
// other code
To ask bot questions, you may use the bot.ask(<prompt>, <conversation_id>:optional)
functionality. A usage of it is given below:
import { Bard } from "googlebard";
let cookies = `__Secure-1PSID=<YOUR_COOKIE>`;
let bot = new Bard(cookies);
let conversationId = "some_random_id"; // optional: to make it remember the conversation
let response = await bot.ask("What is my name?", conversationId); // conversationId is optional
console.log(response);
>> I don't know your name. I am a large language model, also known as a conversational AI or cha...
conversation_id
again will allow the bot to remember what you said earlier in the conversationimport { Bard } from "googlebard";
let cookies = `__Secure-1PSID=<YOUR_COOKIE>`;
let bot = new Bard(cookies, {
inMemory: false,
savePath: "./conversations.json", // this is being done to save crucial information about the conversation so the bot remembers it
});
let conversationId = "test_id";
let response = await bot.ask("My name is Mehul", conversationId);
console.log(response);
>> Hi Mehul, it's nice to meet you! I'm Bard...
import { Bard } from "googlebard";
let cookies = `__Secure-1PSID=<YOUR_COOKIE>`;
let bot = new Bard(cookies, {
inMemory: false,
savePath: "./conversations.json",
});
let conversationId = "test_id";
let response = await bot.ask("What is my name?", conversationId)
console.log(response);
>> I know your name is Mehul. You told me earlier.
To ask bot questions and simulate response streaming, you can either implement it through custom logic or use the built-in bot.askStream(<callback>, <content>, <conversation_id>:optional)
. A usage of it is given below:
import { Bard } from "googlebard";
let cookies = `__Secure-1PSID=<YOUR_COOKIE>`;
let bot = new Bard(cookies, {
inMemory: false,
savePath: "./conversations.json",
});
let conversationId = "test_id";
await bot.askStream(
(res) => {
console.log(res);
}, // returns the response
"Hello?",
conversationId,
);
>> Your
name
is
Mehul.
I
will
remember
that
for
the
next
time
we
speak.
To reset a conversation, you may use the bot.resetConversation(<conversation_id>)
functionality. This functionality allows the user to make the bot forget about previous conversations provided they are all under the same conversation_id
. A usage of it is given below:
import { Bard } from "googlebard";
let cookies = `__Secure-1PSID=<YOUR_COOKIE>`;
let bot = new Bard(cookies, {
inMemory: false,
savePath: "./conversations.json",
});
let conversationId = "test_id"; // notice id is the same as that used in the above example
let response = await bot.ask("what is my name?", conversationId);
console.log(response);
>> You told me your name is Mehul.
import { Bard } from "googlebard";
let cookies = `__Secure-1PSID=<YOUR_COOKIE>`;
let bot = new Bard(cookies, {
inMemory: false,
savePath: "./conversations.json",
});
let conversationId = "test_id";
bot.resetConversation(conversationId) // resetting conversation
let response = await bot.ask("what is my name?", conversationId);
console.log(response);
>> I understand that you are trying to get me to say your name, but...
In order to retrieve all your conversations, you may either implement the functionality through a custom logic or simply use the built-in bot.getAllConversations()
. .A usage of it is given below:
import { Bard } from "googlebard";
let cookies = `__Secure-1PSID=<YOUR_COOKIE>`;
let bot = new Bard(cookies, {
savePath: "./conversations.json",
});
let response = bot.getAllConversations()
console.log(response) // returns an array of different conversations
import { Bard } from "googlebard";
let cookies = `__Secure-1PSID=<YOUR_COOKIE>`;
let bot = new Bard(cookies, {
inMemory: false,
savePath: "./conversations.json",
});
let conversationId = "test_id";
await bot.waitForLoad();
let response = bot.getConversationById(conversationId);
console.log(response); // returns an object
A simple example has been added to the examples
directory which shows how GoogleBard can be used to create a CLI chatbot. More such examples are yet to be added, so stay tuned!
FAQs
A reverse engineered API for Google Bard chatbot
The npm package googlebard receives a total of 40 weekly downloads. As such, googlebard popularity was classified as not popular.
We found that googlebard demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.