fty4-memos

ClawSkills 作者 clawskills

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install clawskills:clawskills~fty4-memos
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/clawskills%3Aclawskills~fty4-memos/file -o fty4-memos.md
# SKILL.md for the Memos skill

## Purpose

This skill provides a simple interface to the Memos API (https://usememos.com/docs/api). It lets you create, read, delete, and list memos from OpenClaw.

## How it works

- The skill is implemented in Python and uses the `requests` library.
- It requires two environment variables:
  - `MEMOS_URL` – **REQUIRED**. Base URL of your Memos instance (e.g., `https://demo.usememos.com`).
  - `MEMOS_TOKEN` – **REQUIRED**. Personal access token for authentication.
- If either `MEMOS_URL` or `MEMOS_TOKEN` is not set, the skill will abort with a clear error.

## Commands

| Command                         | Description                                                                                                                                | Usage example                                      | cd  |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------- | --- |
| `create <content> [visibility]` | Create a new memo. `visibility` defaults to `PUBLIC` (options: PRIVATE, PROTECTED, PUBLIC). The tag `#openclaw` is appended automatically. | `openclaw skill-run create "Hello world" "PUBLIC"` |
| `get <id>`                      | Retrieve a memo by its ID. ID can be in format `memos/123` or just `123`.                                                                  | `openclaw skill-run get 123`                       |
| `delete <id> [force]`           | Delete a memo. Optional `force` (true/false) will delete even if it has associated data.                                                   | `openclaw skill-run delete 123 true`               |
| `list [pageSize]`               | List memos with pagination. `pageSize` defaults to 20 (max 1000).                                                                          | `openclaw skill-run list 50`                       |

## Direct Python Usage

You can also run the commands directly with Python:

```bash
# Create a memo
python3 skills/memos/memos.py create "My memo content" "PUBLIC"

# Get a memo by ID
python3 skills/memos/memos.py get j9THXDmYtueosTTeHcC5NA

# Delete a memo
python3 skills/memos/memos.py delete j9THXDmYtueosTTeHcC5NA

# Delete with force
python3 skills/memos/memos.py delete j9THXDmYtueosTTeHcC5NA true

# List memos (default 20)
python3 skills/memos/memos.py list

# List with custom page size
python3 skills/memos/memos.py list 50
```

All commands return JSON output on success and JSON error messages on stderr when errors occur.

## Referencing Memos in OpenClaw

When you create or retrieve a memo, the API returns a memo object with a `uid` field. To reference a memo in OpenClaw's output, format it as a markdown link:

```markdown
[memo description](https://demo.usememos.com/memos/{uid})
```

**Example:**
If the API returns `{"uid": "ABC123xyz", "name": "memos/ABC123xyz", ...}`, reference it as:

```markdown
Created [your memo](https://demo.usememos.com/memos/ABC123xyz)
```

The URL format is: `{MEMOS_URL}/memos/{uid}` where `uid` is extracted from the response.

## Error handling

The skill includes comprehensive error handling:

- **API Errors**: Returns detailed error messages including HTTP status codes and API response details
- **Network Errors**: Handles timeouts (30s default) and connection failures
- **Validation**: Validates parameters before making API calls (e.g., visibility options, pageSize range)
- **Exit codes**: Returns 0 on success, 1 on error when run from command line
- **Error output**: All errors are output as JSON to stderr for easy parsing

Example error responses:

```json
{
  "error": "Memos API Error",
  "message": "HTTP 404: Not Found - Memo not found",
  "status_code": 404
}
```

## Extending the skill

- Add new commands by following the pattern of existing ones.
- If the Memos API adds new endpoints, you can create corresponding functions.

---

**NOTE:** This skill is meant for personal use; never share your `MEMOS_TOKEN` publicly.