dnote

TotalClaw 作者 totalclaw

使用 Dnote CLI 保存、检索和管理笔记。当用户想要捕获信息、搜索现有笔记、参考保存的知识或将笔记组织到书中时使用。支持添加笔记、全文搜索、查看书籍/笔记、编辑和删除笔记。非常适合建立个人知识库。

安装 / 下载方式

TotalClaw CLI推荐
totalclaw skills install shop:totalclaw:totalclaw~m1n-74316d65-dnote
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~m1n-74316d65-dnote/file -o m1n-74316d65-dnote.md
## 概述(中文)

使用 Dnote CLI 保存、检索和管理笔记。当用户想要捕获信息、搜索现有笔记、参考保存的知识或将笔记组织到书中时使用。支持添加笔记、全文搜索、查看书籍/笔记、编辑和删除笔记。非常适合建立个人知识库。

## 原文

# Dnote Notes

Manage a personal knowledge base using Dnote CLI.

## Setup

### Installation

```bash
# macOS/Linux auto-install
curl -s https://www.getdnote.com/install | sh

# Or Homebrew
brew install dnote

# Or download from: https://github.com/dnote/dnote/releases
```

### Configuration

Dnote follows XDG directories:
- **Config**: `~/.config/dnote/dnoterc`
- **Database**: `~/.local/share/dnote/dnote.db`

```bash
# Example config file (~/.config/dnote/dnoterc)
editor: vim
apiEndpoint: https://api.dnote.io
enableUpgradeCheck: true

# Or use local-only (no sync)
# No config needed - works offline by default
```

### Sync Setup (Optional)

```bash
# To sync across devices
dnote login

# Or local-only mode (no setup required)
```

## Quick Start

```bash
# Add a note to a book
{baseDir}/scripts/dnote.sh add cli "git rebase -i HEAD~3"

# Pipe content to a note
echo "docker system prune" | {baseDir}/scripts/dnote.sh add docker

# Search all notes
{baseDir}/scripts/dnote.sh find "docker compose"

# View recent notes
{baseDir}/scripts/dnote.sh recent

# List all books
{baseDir}/scripts/dnote.sh books

# View notes in a book
{baseDir}/scripts/dnote.sh view cli

# Get a specific note
{baseDir}/scripts/dnote.sh get cli 1
```

## Commands

### Adding Notes

| Command | Description |
|---------|-------------|
| `add <book> <content>` | Add note to book |
| `add-stdin <book>` | Add from stdin (pipe-friendly) |
| `quick <content>` | Quick add to 'inbox' book |

### Retrieving Notes

| Command | Description |
|---------|-------------|
| `view [book]` | List books or notes in book |
| `get <book> <index>` | Get specific note by index |
| `find <query>` | Full-text search (use `-b <book>` to filter) |
| `recent [n]` | Show n most recent notes (default: 10) |
| `books` | List all books |
| `export [book]` | Export notes as JSON |
| `config` | Show config and paths |

### Managing Notes

| Command | Description |
|---------|-------------|
| `edit <id> [content]` | Edit note by ID |
| `move <id> <book>` | Move note to different book |
| `remove <id>` | Delete note |
| `remove-book <book>` | Delete entire book |

### Sync & Info

| Command | Description |
|---------|-------------|
| `sync` | Sync with Dnote server |
| `status` | Show status and stats |
| `config` | Show config file locations |
| `login` | Authenticate with server (native CLI) |
| `logout` | Remove credentials (native CLI) |

## Collection IDs / Books

- Use any book name (auto-created on first use)
- Common book names: `cli`, `docker`, `git`, `ideas`, `snippets`, `journal`, `inbox`
- Books are created automatically when you add the first note

## Examples

```bash
# Capture a shell one-liner
{baseDir}/scripts/dnote.sh add cli "grep -r pattern . --include='*.py'"

# Save from command output
git log --oneline -10 | {baseDir}/scripts/dnote.sh add git

# Quick capture to inbox
{baseDir}/scripts/dnote.sh quick "Remember to update README"

# Search for docker commands
{baseDir}/scripts/dnote.sh find "docker compose"

# Search within a specific book
{baseDir}/scripts/dnote.sh find "config" -b cli

# Get formatted note for AI context
{baseDir}/scripts/dnote.sh get cli 1 --format raw

# Export book for processing
{baseDir}/scripts/dnote.sh export cli --json | jq '.notes[].content'

# Recent notes across all books
{baseDir}/scripts/dnote.sh recent 20

# Search and export results
{baseDir}/scripts/dnote.sh find "postgres" --json
```

## Using Notes in AI Context

### Retrieve relevant notes for the current task:

```bash
# Search for related knowledge
{baseDir}/scripts/dnote.sh find "python argparse"

# Get full content of a specific note
{baseDir}/scripts/dnote.sh get cli 5

# Export entire book for context
{baseDir}/scripts/dnote.sh export python
```

### Auto-capture useful information:

```bash
# Save a discovered solution
{baseDir}/scripts/dnote.sh add docker "Multi-stage builds reduce image size"

# Save with timestamp
{baseDir}/scripts/dnote.sh add journal "$(date): Deployed v2.3 to production"
```

## Patterns

### Daily Journal

```bash
# Create dated entry
{baseDir}/scripts/dnote.sh add journal "$(date +%Y-%m-%d): Started work on feature X"

# Review recent entries
{baseDir}/scripts/dnote.sh view journal | head -20
```

### Code Snippets

```bash
# Save with description
{baseDir}/scripts/dnote.sh add python "List comprehension: [x for x in items if x > 0]"

# Search when needed
{baseDir}/scripts/dnote.sh find "list comprehension"
```

### Command Reference

```bash
# Build a CLI reference
curl -s https://api.example.com | {baseDir}/scripts/dnote.sh add api

# Quick lookup
{baseDir}/scripts/dnote.sh view api
```

## Integration with Workflows

The skill provides helper functions for common patterns:

| Function | Use Case |
|----------|----------|
| `dnote:search <query>` | Find relevant context before answering |
| `dnote:capture <book> <content>` | Save useful info discovered during task |
| `dnote:recent [n]` | Review recently captured notes |
| `dnote:export-book <book>` | Load entire book into context |

## Config File

Create `~/.config/dnote/dnoterc`:

```yaml
editor: code --wait      # or vim, nano, subl -w
apiEndpoint: https://api.dnote.io
enableUpgradeCheck: true
```

## Tips

- **Use specific book names**: `python`, `bash`, `docker`, `kubernetes`, `ideas`
- **Search is full-text**: Works across all note content
- **Indexes are 1-based**: First note is `1`, not `0`
- **Pipes work great**: Capture command output directly
- **Sync optional**: Works fully offline, sync when ready

## Direct Dnote CLI

For operations not covered:

```bash
# Interactive edit
dnote edit 5

# Rename book
dnote edit oldname -n newname

# Full sync
dnote sync --full

# Custom DB path
dnote --dbPath /path/to/custom.db view
```

Docs: https://www.getdnote.com/docs/cli/