Install
openclaw skills install google-keep-skillIntegration with Google Keep via nodriver (undetectable Chrome). Creates, reads, updates, and deletes notes.
openclaw skills install google-keep-skillSkill to interact with Google Keep via nodriver (real Chrome, no bot detection).
Prerequisites
sudo apt install google-chrome-stable on 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
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 login
Chrome 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 5
Or to create a note: ... keep.py create --title "Title" --content "Text".
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.
cd /path/to/google-keep-skill && uv run python scripts/keep.py check
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.
All executed via terminal (run_command in MCP/nanobot context):
cd /path/to/google-keep-skill && uv run python scripts/keep.py <command>
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 an update to 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 \n sent via the terminal.create-list --title "T" --items "i1, i2, i3": Creates a checklist note. Simulates Enter between each element.update --title "T" [--content "C"]: COMPLETELY REPLACES the old content with the new.
list note yet. Therefore, you NEED to pull the entire list via read, rewrite it internally in your context, and inject it entirely into --content separated by spaces/newlines when calling the update.delete --title "T": Move to trash.archive --title "T": Archive note.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:
data payload and format it in Markdown.type == "list", generate a markdown checklist like:**Groceries**
- [ ] Milk
- [ ] Bread
success == false and it states the session expired, prompt the user specifically with the uv run python scripts/keep.py login command so they can re-authenticate. Do not automatically guess next actions.~/.config/google-keep-skill/ with chmod 700 restricted 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.