Skip to content
Back to skills

Memos

ASecurity

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.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 11, 2026
documentationpythonbashapi

Works with

  • api

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned November 11, 2026

npx -y skills add johnalbertini14-glitch/openclaw-skills --skill memos --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Memos?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Memos
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/johnalbertini14-glitch-memos/badge)](https://www.skillsdirectory.com/skills/johnalbertini14-glitch-memos)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.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.

Files in this skill

  • SKILL.md4 KB
  • _meta.json260 B
  • memos.py9.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in documentation →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.