slm-media
Save pictures and PDFs in SuperLocalMemory and find them again by describing them.
Skill by qualixar
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/qualixar-slm-media
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/slm-media
Tools it pre-approves 7
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
remember_media,remember_document,get_media,media_status,media_upload_link,recall,Bash(slm:*)
What's inside
- Skill name
slm-media- Description
- Save pictures and PDFs in SuperLocalMemory and find them again by describing them. Covers when to save a picture or document, remember_media, remember_document, get_media, media_status and media_upload_link, how recall returns pictures and PDF pages, the limits, what stays private, turning the feature on with `slm media` (16 GB of memory needed), connecting folders with `slm sources`, and how web apps add files through one-time upload links. Off by default.
- License
- AGPL-3.0
- Allowed tools
- remember_media,, remember_document,, get_media,, media_status,, media_upload_link,, recall,, Bash(slm:*)
- Instructions
- 328 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves some shell commands
Files (1)
- SKILL.md
SKILL.md (first lines)
# slm-media — Pictures, PDFs and Folders
SuperLocalMemory can keep a picture or a PDF as a memory and find it later by
describing what it shows or what it says. A picture model runs on this
computer (EmbeddingGemma 2). OCR reads the text inside pictures. Each PDF
page is indexed by its picture and by its text. No generative model looks at
the files, so SLM cannot describe a picture to you: it finds it, and you look
at the thumbnail it returns.
This feature is **off by default**. Pictures live in their own database
(`media.db`); turning it on does not change any existing memory or embedding.
---
## When to save a picture or a PDF
Save one when the user asks, or when the file is itself the thing worth
finding again: a screenshot of an error they will meet again, a diagram of a
design decision, a receipt, a scanned page, a PDF spec. Do not save a file
just because it was shown in the conversation.
Add words with `content`. The picture is found by what it shows, by the text
read inside it, and by the words you add, so a short sentence about why it
matters ("Staging dashboard after the Postgres 17 move") helps recall.
Never save a picture or PDF that shows a password, key, token, card number,
government id or private data about a third party. The text read from a file
is scanned like any saved text, but a screenshot of a secret should not be
saved at all. Ask the user first if you are unsure.
---
## Are the tools there?
The five tools below are listed only while pictures and documents are on, and
only in the `full`, `power` and `whole` MCP tool sets. They are not in `core`
or `code`. The tool set is fixed when the MCP server starts, so after the
feature is turned on, restart the MCP session (`slm restart` starts the
picture worker too). Do not guess: run
```bash
slm media status
```
It says whether the feature is off, set up, still setting up, or failed
(`slm doctor` explains a failure). The same status is in the dashboard under
**Documents & Images**.
### Turning it on (ask the user first)
```bash
slm media enable # shows the download size and a disk check, then asks; --yes skips the question
```
Turning it on downloads about 1.5 GB of models and tools, and needs a
computer with 16 GB of memory (the check passes from 15 GiB). On a smaller
computer `enable` refuses with the reason and exits with code 4; text memory
keeps working. Never turn it on, or pass `--yes`, without the user saying
yes in this conversation. Never set `SLM_MEDIA_ALLOW_LOW_RAM=1` yourself: it
removes the memory check and the owner must decide that.
Supported: macOS on Apple Silicon, Windows x64, Linux x86_64 and Linux ARM64
(aarch64), Python 3.12 to 3.14. Not supported: Intel Macs and Windows on ARM.
Other commands:
```bash
slm media status # what is on and how set-up is going
slm media disable # off again; memories are kept (--remove-files also deletes the downloaded models)
slm media gc # report picture records without a memory and files without a record; removes nothing
slm media gc --apply # remove them (owner or admin); never touches SLM's databases
slm media repair --dry-run # count pictures that cannot be found by what they show yet
slm media repair # re-embed them (owner or admin); run again if it says pictures are left
```
All take `--json`. Run `slm media repair` when a save says a picture "can't be
found by what it shows yet", or after the picture model changed.
---
## Tool reference
### `remember_media` — save a picture
```
remember_media(
path: str = "", download_url: str = "", base64: str = "", file = None, # give exactly one
content: str = "", tags: str = "", profile_id: str = "",
idempotency_key: str = "", scope: str = "", shared_with: str = "",
) -> dict
```
Give exactly one of `path` (a file on this computer), `download_url` (an
https link), `base64`, or `file` (a picture attached in a ChatGPT chat;
ChatGPT fills it in, never write it by hand). Two or none is refused
(`invalid_request`). `scope` (personal, project, shared, global) and
`shared_with` (comma-separated profile ids) work as in `remember`: leave them
unset unless the user asked to share. Formats: PNG, JPEG, GIF (first frame)
and WebP.
Returns `success`, `status`, and on success a `media_id` and a `resource`,
`slm://media/<media_id>`. Report what the tool returned; do not say "saved"
unless `success` is true.
### `remember_document` — save a PDF
```
remember_document(
path: str = "", base64: str = "", download_url: str = "", file = None, # give exactly one
file_name: str = "", content: str = "", tags: str = "", profile_id: str = "",
idempotency_key: str = "", scope: str = "", shared_with: str = "",
) -> dict
```
Same sources and rules as `remember_media`, for a PDF. The work continues in
the background; the answer has a `job_id` (and `document_id`). Follow it with
`media_status`. Each page is indexed by its picture and its text layer.
### `media_status` — follow a documentFrom qualixar/superlocalmemory, AGPL-3.0.
More from qualixar/superlocalmemory
- 0.683score
superlocalmemory-web
qualixar
Use the user's SuperLocalMemory through Web access.
SkillAFreshness: A★ 257Claude Code +9 - 0.683score
slm-bot-memory
qualixar
Cross-bot memory on a shared computer (Grok Bot, Cursor plugin, any host where several agents share one machine).
SkillAFreshness: A★ 257Claude Code +9 - 0.683score
slm-cache
qualixar
KV cache for repeated reads — call slm_cache_get(key) first; on a miss do the expensive operation then slm_cache_set(key, value, ttl_seconds) to store it; on…
SkillAFreshness: A★ 257Claude Code +9 - 0.683score
slm-compress
qualixar
Compress large text, tool output, or transcripts to reduce context-window usage while keeping the full 1M window intact — call slm_compress(content, mode…
SkillAFreshness: A★ 257Claude Code +9 - 0.683score
slm-session
qualixar
Manage SuperLocalMemory session lifecycle — call session_init once at the start of every fresh session to load relevant project context and get a session_id…
SkillAFreshness: A★ 257Claude Code +9 - 0.683score
slm-status
qualixar
Health and optimization stats for SuperLocalMemory — call slm_optimize_stats() for live compression and cache counters (compress_runs, tokens_saved_compress…
SkillAFreshness: A★ 257Claude Code +9 - 0.683score
slm-web-access
qualixar
Set up and troubleshoot SuperLocalMemory Web access, the optional link that lets web apps (ChatGPT, Claude on the web, Muse, Composio, other remote MCP…
SkillAFreshness: A★ 257Claude Code +9 - 0.683score
slm-governance
qualixar
Governed-workspace behavior for SuperLocalMemory.
SkillAFreshness: A★ 257Claude Code +9 - 0.683score
slm-graph
qualixar
Index and query a codebase as a structural graph — build the code graph, trace blast radius of a change, find callers/callees/inheritors, semantic code search…
SkillAFreshness: A★ 257Claude Code +9 - 0.683score
slm-loop
qualixar
Gate-verified bounded loops with SuperLocalMemory as the durable ledger.
SkillAFreshness: A★ 257Claude Code +9 - 0.683score
slm-mesh
qualixar
Cross-session peer coordination via the SLM mesh network.
SkillAFreshness: A★ 257Claude Code +9 - 0.683score
slm-profile
qualixar
Memory profiles (separate namespaces inside one SuperLocalMemory store) and MCP tool sets (which tools your host sees).
SkillAFreshness: A★ 257Claude Code +9
Signals
- Stars
- 257
- Forks
- 36
- Open issues
- 3
- Contributors
- 13
- Last commit (this folder)
- Oct 22, 2026 (6 days ago)
- Last release
- Oct 22, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- AGPL-3.0
- Repository
- github.com/qualixar/superlocalmemory
- Website
- www.superlocalmemory.com
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
- 0.356score
slm-media
qualixar
Save pictures and PDFs in SuperLocalMemory and find them again by describing them.
SkillAFreshness: A★ 257Claude Code +9 - 0.356score
slm-media
qualixar
Save pictures and PDFs in SuperLocalMemory and find them again by describing them.
SkillAFreshness: A★ 257Claude Code +9 - 0.356score
slm-media
qualixar
Save pictures and PDFs in SuperLocalMemory and find them again by describing them.
SkillAFreshness: A★ 257Claude Code +9 - 0.356score
slm-media
qualixar
Save pictures and PDFs in SuperLocalMemory and find them again by describing them.
SkillAFreshness: A★ 257Claude Code +9 - 0.356score
slm-media
qualixar
Save pictures and PDFs in SuperLocalMemory and find them again by describing them.
SkillAFreshness: A★ 257Claude Code +9 - 0.356score
slm-media
qualixar
Save pictures and PDFs in SuperLocalMemory and find them again by describing them.
SkillAFreshness: A★ 257Claude Code +9 - 0.356score
slm-media
qualixar
Save pictures and PDFs in SuperLocalMemory and find them again by describing them.
SkillAFreshness: A★ 257Claude Code +9
More from qualixar
- 0.683score
slm-graph
qualixar
Index and query a codebase as a structural graph — build the code graph, trace blast radius of a change, find callers/callees/inheritors, semantic code search…
SkillAFreshness: A★ 257Claude Code +9 - 0.683score
slm-cache
qualixar
KV cache for repeated reads — call slm_cache_get(key) first; on a miss do the expensive operation then slm_cache_set(key, value, ttl_seconds) to store it; on…
SkillAFreshness: A★ 257Claude Code +9 - 0.683score
slm-compress
qualixar
Compress large text, tool output, or transcripts to reduce context-window usage while keeping the full 1M window intact — call slm_compress(content, mode…
SkillAFreshness: A★ 257Claude Code +9 - 0.683score
slm-bot-memory
qualixar
Cross-bot memory on a shared computer (Grok Bot, Cursor plugin, any host where several agents share one machine).
SkillAFreshness: A★ 257Claude Code +9 - 0.683score
slm-governance
qualixar
Governed-workspace behavior for SuperLocalMemory.
SkillAFreshness: A★ 257Claude Code +9 - 0.683score
slm-loop
qualixar
Gate-verified bounded loops with SuperLocalMemory as the durable ledger.
SkillAFreshness: A★ 257Claude Code +9
Cite this page
slm-media skill. Agent Mart. https://agentmart.dev/skills/qualixar-slm-media (last updated 2026-10-24)