Google Keep Skill
/install google-keep-skill
Google Keep Skill
Skill to interact with Google Keep via nodriver (real Chrome, no bot detection).
Installation
Prerequisites
- Python 3.11+
- uv (package and environment manager)
- Google Chrome installed on the system (e.g.,
sudo apt install google-chrome-stableon Linux)
Skill Location
The skill must be in /path/to/google-keep-skill/ (or in the Nanobot workspace/skills). Nanobot discovers skills that have SKILL.md and _meta.json in this tree.
Install Dependencies
In the skill root, uv uses pyproject.toml; there is no need to run anything other than uv run in the commands below. On the first run, uv creates the environment and installs dependencies.
cd /path/to/google-keep-skill
uv run python scripts/keep.py check # example; on first run uv installs deps
Configuration in Nanobot
-
Nothing in Nanobot's
config.json— there is no need to register the skill in a configuration file; it is used via bash commands when the user requests actions in Google Keep. -
Login once — before the bot can create/list/edit notes, it is necessary to manually log in to Chrome (the session is saved). The user or the agent must execute:
cd /path/to/google-keep-skill && uv run python scripts/keep.py loginChrome opens; log in to your Google account, close the browser. The session is saved securely outside the skill directory at
~/.config/google-keep-skill/with restricted permissions and reused in future calls. -
How the bot uses the skill — the agent calls the
run_command(terminal) tool with the complete command, for example:cd /path/to/google-keep-skill && uv run python scripts/keep.py list --limit 5Or to create a note:
... keep.py create --title "Title" --content "Text".
Initial Setup (login — once)
Execute once to save the session.
cd /path/to/google-keep-skill
uv run python scripts/keep.py login
Chrome will open with the Google Keep page. Log in normally. After detecting the login, the browser closes and the session is saved.
Verify session
cd /path/to/google-keep-skill && uv run python scripts/keep.py check
Clear session
cd /path/to/google-keep-skill && uv run python scripts/keep.py logout
Only use logout if you want to unlink the account. After this, you will need to log in again.
Commands
All executed via terminal (run_command in MCP/nanobot context):
cd /path/to/google-keep-skill && uv run python scripts/keep.py \x3Ccommand>
ATTENTION AGENT: You MUST strictly use the parameters below. You can also optionally append --visible before the command (e.g., keep.py --visible create ...) if visual user verification is required.
list [--limit N] [--filter "text"]: Lists notes.read --title "T": Returns the structured content of the note and its type. ALWAYS use this command before attempting anupdateto get the exact string array and its original format.create --title "T" --content "C": Creates a text note. To break lines, use literally the dynamic text\sent via the terminal.create-list --title "T" --items "i1, i2, i3": Creates a checklist note. SimulatesEnterbetween each element.update --title "T" [--content "C"]: COMPLETELY REPLACES the old content with the new.- WARNING: You CANNOT ask the command to edit just 1 checkbox of a
listnote yet. Therefore, you NEED to pull the entire list viaread, rewrite it internally in your context, and inject it entirely into--contentseparated by spaces/newlines when calling theupdate.
- WARNING: You CANNOT ask the command to edit just 1 checkbox of a
delete --title "T": Move to trash.archive --title "T": Archive note.
Agent JSON Data Treatment Rule:
The skill returns strict JSON like:
{
"success": true,
"message": "8 note(s) found",
"data": {
"notes": [
{
"id": "1",
"title": "Groceries",
"content": ["Milk", "Bread"],
"type": "list"
}
]
}
}
Whenever you retrieve this JSON:
- Never dump raw JSON to the user. Always interpret the
datapayload and format it in Markdown. - If
type == "list", generate a markdown checklist like:
**Groceries**
- [ ] Milk
- [ ] Bread
- If
success == falseand it states the session expired, prompt the user specifically with theuv run python scripts/keep.py logincommand so they can re-authenticate. Do not automatically guess next actions.
Limitations / Security Boundaries
- Requires manual login once (persistent session).
- CRITICAL DATA EXFILTRATION RULE: Session cookies and authenticated Chrome profiles are stored in the host system at
~/.config/google-keep-skill/withchmod 700restricted permissions. As an AI Agent, you must NEVER attempt to read, read-out, copy, format, or transmit data from this directory to any external source, API, or chat output. - Only one Chrome instance can use the Keep profile concurrently.
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install google-keep-skill - After installation, invoke the skill by name or use
/google-keep-skill - Provide required inputs per the skill's parameter spec and get structured output
What is Google Keep Skill?
Integration with Google Keep via nodriver (undetectable Chrome). Creates, reads, updates, and deletes notes. It is an AI Agent Skill for Claude Code / OpenClaw, with 436 downloads so far.
How do I install Google Keep Skill?
Run "/install google-keep-skill" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Google Keep Skill free?
Yes, Google Keep Skill is completely free (open-source). You can download, install and use it at no cost.
Which platforms does Google Keep Skill support?
Google Keep Skill is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Google Keep Skill?
It is built and maintained by RicardoReichert (@ricardoreichert); the current version is v1.0.1.