Get the FREE Ultimate OpenClaw Setup Guide →
S

Notebook

Scanned

@TheSethRose

npx machina-cli add skill @TheSethRose/notebook --openclaw
Files (1)
SKILL.md
3.6 KB

Notebook Skill Object Based Personal Knowledge Base

Purpose: Track any object type you define such as ideas, projects, tasks, habits, books, and people.

Location: {WORKSPACE}/skills/notebook/

Agent Onboarding Protocol

Guide the user through setup when no object types exist.

Step 1 Suggest a First Type

It looks like you have not defined any object types yet.
Notebook works best when you define the types of things you want to track.

What would you like to start with?

1. Ideas for capturing thoughts and features
2. Projects for long term work with goals
3. Tasks for actionable items with due dates
4. Something custom tell me what you want to track

Step 2 Define the Type Together

If they choose a preset:

Great. Let us set up [type].

I will create it with useful fields. You can add or remove them later.

For [type], what fields do you want?
- title (text, required)
- status (select)
- priority (select)
- tags (text)
- notes (longtext)
- [custom fields]

What fields should [type] have?

If they want custom:

Tell me what you want to track and what details matter.

Example: I want to track books I read. I need title, author, status, rating, and notes.

I will translate that into a type definition.

Step 3 Create the First Object

Now let us add your first [type].

What do you want to track as your first [type]?

Example: The Andromeda Strain for books or Home automation for projects

Step 4 Show the Workflow

Perfect. You now have:
- Type: [typename] with [N] fields
- 1 [typename] object: [title]

What would you like to do next?

- notebook list [typename] to see all items
- notebook expand [typename] [title] to add details
- notebook add [typename] to add another
- notebook type-add [typename] to add more fields later

Step 5 Offer Expansion

Would you like to deepen this [typename] with some questions?
Say expand and I will ask questions to add depth.

Quick Reference

Defining Types

notebook type-add typename field1:text field2:select(a|b|c) field3:number

Field types:

  • text for short strings
  • longtext for multi line notes
  • select(a|b|c) for one option from a list
  • number for numeric values
  • date for dates
  • list for an array of strings

Working with Objects

notebook add typename "Title" [-t tag1,tag2 -p priority]
notebook list typename
notebook get typename title
notebook expand typename title
notebook edit typename "title" field:value
notebook link type1:title1 type2:title2
notebook delete typename title
notebook find "query"
notebook stats

Example Workflow

# 1. Define a type
notebook type-add idea title:text status:select(raw|expanded|archived) priority:select(high|medium|low) tags:text notes:longtext

# 2. Add your first idea
notebook add idea "Voice capture while driving" -t voice,automation -p high

# 3. Deepen it
notebook expand idea "voice capture"

# 4. Link to other objects
notebook add project "Home automation" -t household
notebook link idea:"voice capture" project:"home automation"

# 5. Update as you work
notebook edit idea "voice capture" status:expanded

Data Location

/data/notebook/
├── objects/
├── types.yaml
└── index.json

Design Principles

  • User defined: You define the types that matter.
  • Local first: Uses YAML files with no cloud or vendor lock in.
  • Linkable: Objects can reference each other.
  • Extensible: Add types and fields as needed.
  • Expandable: Use intelligent questioning to deepen thinking.

Source

git clone https://clawhub.ai/TheSethRose/notebookView on GitHub

Overview

Notebook is a local-first personal knowledge base for tracking ideas, projects, tasks, habits, and any custom object type you define. It uses YAML and stores data in your workspace with no cloud lock-in.

How This Skill Works

Define object types with notebook type-add, then add objects with notebook add. Objects can be deepened with notebook expand and linked with notebook link. Data is stored locally in /data/notebook/ as YAML files plus index.json.

When to Use It

  • You want to capture ideas, projects, tasks, habits, or any custom object in a single local system
  • You prefer not to rely on cloud services or vendor lock-in
  • You need customizable fields and relationships between objects
  • You want a workflow that starts with defining types and then adding objects
  • You want to track books, people, or other custom items as part of a personal knowledge base

Quick Start

  1. Step 1: notebook type-add typename field1:text field2:select(a|b|c) field3:number
  2. Step 2: notebook add typename "Voice capture while driving" -t voice,automation -p high
  3. Step 3: notebook expand typename "voice capture"

Best Practices

  • Start with a core type before expanding to additional types
  • Use descriptive titles, clear status, and meaningful tags to improve searchability
  • Define useful default fields (title, status, priority, notes) and add custom fields as needed
  • Link related objects to build a lightweight knowledge graph
  • Back up /data/notebook/ or version-control your YAML definitions for safety

Example Use Cases

  • Idea: Voice capture while driving using tags voice, automation and a detailed notes field
  • Project: Home automation with status and priority, linked to related ideas
  • Task: Install smart lights by Friday with due-date context and tags
  • Habit: Morning journaling streak tracked as a repeating task with notes
  • Book: The Andromeda Strain stored as a book object with title, author, status, and notes

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers