OC
OpenClaw
Dashboard

2026-04-08-0208.md

/home/ubuntu/.openclaw/workspace/memory/2026-04-08-0208.md

Session: 2026-04-08 02:08:12 UTC

  • Session Key: agent:main:main
  • Session ID: a86632c5-66ec-4196-a16d-1fdf2be41206
  • Source: webchat

Conversation Summary

assistant: It can work either way, depending on how that “todo skill” is implemented and how your OpenClaw instance is configured.

1) Natural language (“add xyz to my todo”) — sometimes automatic

If the todo capability is exposed to the agent as an actual available skill/tool workflow, the agent can usually decide to use it just from plain text like:

“add xyz to my todo”

That’s the “agent picks the right capability” path.

But it only works reliably if:

  • the skill is installed/available to the running agent, and
  • the agent has a clear way to execute it (API/tool/action), not just documentation, and
  • nothing else is competing/ambiguous (e.g., multiple “todo-ish” integrations).

2) Slash command (/todo add xyz) — always explicit

If the skill registers a /command entrypoint, using it is the deterministic way:

  • No interpretation step
  • No ambiguity
  • You get exactly that action

Rule of thumb

  • If you want “it just works when I text you on Telegram”, you need the todo skill to be something the agent can invoke programmatically, and you should test a few natural phrases.
  • If you want “100% reliable, minimal surprises”, use the / command (or have the agent reply with a confirmation + then run it).

If you tell me what you’re using for todos (Notion? Todoist? a markdown file in git? Apple Reminders?), I can suggest the cleanest approach (auto-invoke vs slash command vs both). user: yea adding a task to my todo database in notion [message_id: e3341b99-d14c-43b2-b4d9-219f44107ba2] assistant: For a Notion “add todo” flow, you can make it work from plain Telegram text (“add xyz to my todo”) — but it won’t magically happen just because you created a skill. You need one of these two wiring patterns:

Option A (recommended): Natural language → agent uses Notion skill/tool

You message normally (“add xyz…”), and the agent decides to call the Notion API to create a new page in your Notion database.

To make that reliable, you need:

  • Notion integration + API key configured (NOTION_API_KEY, shared access to the database)
  • A known target database (store the database_id somewhere in your config/memory/docs so the agent doesn’t have to guess every time)
  • A clear mapping of properties (e.g., Name title, Status, Due, etc.)

If those are in place, plain-language requests usually work fine.

Option B: Slash command → deterministic entrypoint

You create a chat command like:

  • /todo add Buy milk
  • /todo add "Call Alex" due:tomorrow

This is the “always does exactly that” path. No ambiguity, no guessing which database, no needing to infer fields.

What I’d do for you

  • Use both: natural language for convenience, and a /todo command as a fallback when you want certainty.
  • Pick one canonical Notion database and property schema.

Two quick questions to wire it up cleanly

  1. What’s the Notion database link (or name) for your todo database?
  2. What are the key properties you care about besides the title (e.g., Status, Due date, Priority, Project)? user: notion is already configured and you had added a task for me earlier. i just want to make a skill for it so that next time it executes faster [message_id: b7c180d0-dbaf-43ed-8262-d49b1e54734b] assistant: I checked memory and don’t see the earlier Notion todo action saved here, so I can’t reuse the exact database/property IDs from that.

On the “make a skill so it executes faster” goal: a skill mostly makes it more reliable/consistent, not inherently faster. Speed is usually dominated by:

  • model turn(s) (how much the agent has to “figure out”)
  • Notion API round trips (network)
  • any “search the database to find the right one” step

What does make it faster in practice

  1. Remove discovery steps

    • Hardcode / pre-store the database_id (and common property names/options).
    • Then “add todo” becomes a single Notion API call (POST /v1/pages) instead of “search → inspect schema → create”.
  2. Provide an explicit, thin entrypoint

    • A chat command like /todo Buy milk (or /todo add …) avoids interpretation overhead and ambiguity.
    • Natural language can still work, but it sometimes triggers extra “are you sure / which database / which fields” reasoning.
  3. Use a small local wrapper script

    • Example: automation/notion-add-todo.mjs "Buy milk" --due tomorrow --priority high
    • The agent (or a slash command) calls the script with parsed args → script hits Notion directly.
    • This is usually the fastest + most deterministic pattern.

Key point

A “skill” that is only documentation/playbook won’t speed anything up. A “skill” that exposes a direct command or helper script will feel faster because it skips the thinking + discovery steps.

If you want, tell me:

  • the Notion database_id (or paste the database URL), and
  • the exact properties you want to set by default (Status? Due? Priority?)

…and I’ll propose a minimal /todo command + wrapper script approach that makes adding tasks basically one-shot. user: why don't you find the todo database in my notion yourself and create the skill for me [message_id: 670689f5-bba2-43a7-af7e-47423f5cdb11] assistant: I can, and I did it.

  • I searched your Notion workspace for data sources and found your todo DB as “Tasks Tracker” (data_source_id 2c744db7-5011-80b2-895f-000be36a8ded).
  • I created a skill called notion-todo that uses a bundled script to add a task with a single Notion API call (no “figure out which database” step).

What I made

  • Skill folder: /home/ubuntu/.openclaw/workspace/skills/notion-todo/
  • Packaged installable skill file: /home/ubuntu/.openclaw/workspace/tmp/notion-todo.skill

What it does (fast path)

It runs this script under the hood:

python3 skills/notion-todo/scripts/add_todo.py "Task title" --due "2026-04-07" --priority High

Next step

Tell me how you want to “install” skills in your setup:

  • do you import the .skill file via your OpenClaw UI/command, or
  • do you have OpenClaw configured to load local skills from a folder?

If you tell me which, I’ll give you the exact one-liner to get notion-todo active and then we can test by texting: “add buy milk to my todo”. user: idk i haven't created an openclaw skill before, also that was the wrong database, it's this one https://www.notion.so/snakeee/TO-DO-23044db7501180cd9b42f5151c00b8cd [message_id: f5dc7f7b-64be-45f3-9f14-c4b28c6802f7] assistant: Got it — you’re right. I picked the wrong DB because “Tasks Tracker” looked like the canonical todo DB, but your link is a page that contains an inline database.

What I found from your link

  • Page: TO-DO (id 23044db7-5011-80cd-9b42-f5151c00b8cd)
  • Inline database inside that page: TO-DO (database id 23044db7-5011-805d-b920-f4976efef2f7)
  • Actual API target for fast inserts: data_source_id 23044db7-5011-8074-8af9-000b571c0daf
  • Properties: Name (title), Status, Due Date, Category, Project, Milestone

I updated the notion-todo skill to use that TO-DO data source, and re-packaged it:

  • /home/ubuntu/.openclaw/workspace/tmp/notion-todo.skill

One important note

Your TO-DO database does not have Priority or Description, so I removed those from the script and replaced them with --project and --milestone.

About installing/using the skill

OpenClaw “skills” are generally used by the agent once they’re installed/available; in many setups there’s also a UI/import flow for a .skill file. Since you’re not sure how your instance is set up:

  1. Tell me what /commands shows for anything skill-related (even just the lines around “skill” / “import” / “install”), or
  2. If you can, tell me where you configure OpenClaw skills (config file vs UI).

Then I’ll give you the exact steps to install tmp/notion-todo.skill so that next time you message “add xyz to my todo” it can immediately hit the right Notion data source.

Cleanup question

I created a couple “OpenClaw test task …” items while validating the API. Want me to delete those from Notion? user: i don't know how to configure it that's why i'm asking you... i do see notion-todo in the skills section in the ui though [message_id: aa14654f-52a3-4046-88ce-eee5ad736566] assistant: If it shows up in the UI “Skills” section, that usually means you’re already configured correctly: OpenClaw is scanning a local skills directory and has picked up skills/notion-todo/. In that case you don’t need to “install” the .skill file at all.

What to do next (the practical test)

Just message me (here or Telegram):

add “Buy milk” to my todo

and I should use the notion-todo skill and create a row in your TO-DO database.

If you want to be slightly more explicit, try:

create a task: Buy milk due 2026-04-07

Why it may still sometimes ask questions

Even with the skill loaded, I may ask for clarification if you say things like “tomorrow” (need a date) or if you include fields like category/project/milestone that don’t match an existing option in the database.

Quick confirmation

Do you want the default behavior to be:

  • Status = Not started always, unless you specify otherwise? user: so where did we configure it [message_id: dbe648ab-e6ba-4994-9520-a1b6305758e0] assistant: It’s configured implicitly via your Gateway config + workspace layout, not something you manually “registered”.

Here’s what’s going on in your instance:

  1. Your workspace is set in config
  • In /home/ubuntu/.openclaw/openclaw.json you have:
    • agents.defaults.workspace = "/home/ubuntu/.openclaw/workspace"
  1. OpenClaw auto-loads “native skills”
  • Also in that same config:
    • commands.nativeSkills = "auto" This tells OpenClaw to automatically surface skills it can find (and show them in the UI).
  1. The skill appears because it exists on disk under the workspace
  • We created it at:
    • /home/ubuntu/.openclaw/workspace/skills/notion-todo/ Most UIs list anything under that skills folder as “available”, which is why you now see it in the Skills section.

So: you didn’t configure notion-todo specifically anywhere—OpenClaw is just auto-discovering local skills from your workspace.

If you want, I can point you to the exact UI page/setting name where it shows the “skills path” / “local skills directory” so it’s obvious going forward—tell me what the UI section is called (e.g., “Settings → Skills” or “Admin → Skills”). user: yes pls [message_id: cc0578e5-e148-4209-b9f8-d84bc510d97c] assistant: In your setup, there may not be a UI knob for this—skills are being discovered because of two config values in /home/ubuntu/.openclaw/openclaw.json:

  • agents.defaults.workspace = "/home/ubuntu/.openclaw/workspace"
  • commands.nativeSkills = "auto"

That’s the “setting” that makes the UI show your local skills.

Where to look in the UI

Depending on which OpenClaw UI build you’re using, the place that usually makes this obvious is:

  • Settings (gear) → Agent / Workspace
    • Look for something like Workspace Path or Project Root
  • Settings → Skills
    • Look for Local skills directory / Skills path / Native skills
  • Skills page
    • Some UIs show a “Loaded from …/skills/…” hint per skill (or a “source: local” badge)

If you tell me exactly what you see, I can point to the right spot

What’s the exact navigation label you’re clicking to get to the “Skills section” (left sidebar name / top tab name), and can you paste a screenshot of that page? I’ll tell you precisely where it indicates the source/path (or confirm it doesn’t, and we’ll add a small note to your docs so it’s discoverable next time).