Shared Single-file memory layer for all your agents, sub mili-second RAG over text, photo and video on Apple Silicon.. No Server. No API. One File. Pure Swift
# Add to your Claude Code skills
git clone https://github.com/christopherkarani/WaxLast scanned: 5/7/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-07T06:36:50.687Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": true
}Wax is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by christopherkarani. Shared Single-file memory layer for all your agents, sub mili-second RAG over text, photo and video on Apple Silicon.. No Server. No API. One File. Pure Swift. It has 791 GitHub stars.
Yes. Wax passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/christopherkarani/Wax" and add it to your Claude Code skills directory (see the Installation section above).
Wax is primarily written in Swift. It is open-source under christopherkarani on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh Wax against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
Wax is a local-first shared memory layer. It allows any AI to have a single file memory engine with access to vector search, photo and video rag, optimized for Apple Silicon
That store is one file: ~/.wax/memory.wax. No hosted vector DB. Memory, Decisions, facts survive the chat, the app, and the reboot.
Same Mac, many agents. For those using multiple different agents, Wax points each host at the file (or at one local HTTP server). They share memory instead of each keeping a private brain.
Another Mac Or iPhone Device Put the file in iCloud Drive and both machines see the same store, or AirDrop memory.wax like any other document.
~/Library/Mobile Documents/com~apple~CloudDocs/Wax/memory.wax # iCloud
# or
AirDrop memory.wax → ~/.wax/memory.wax
Agent setup: Agent Quick Start · host snippets: wax-mcp-hosts.md
The Engine is Swift Native. Embed it in an iOS or macOS app when you want on-device RAG without standing up a server.
import Wax
let memory = try await Memory(at: url)
try await memory.save("The user prefers dark mode and uses Vim keybindings.")
let results = try await memory.search("What editor does the user like?")
// → "The user prefers dark mode and uses Vim keybindings."
| 🤖 Every agent on this Mac | ⌨️ CLI | 🛠️ Swift app |
|---|---|---|
| You want: Claude, Cursor, Codex, Hermes sharing one local memory. Sync the file with iCloud or AirDrop. | You want: A command-line store you can script. | You want: The same engine inside an iOS/macOS app. |
| Get started: Agent Quick Start ↓ | Get started: CLI Quick Start ↓ | Get started: Swift Quick Start ↓ |
Swift Package Manager
// Package.swift
dependencies: [
.package(url: "https://github.com/christopherkarani/Wax.git", from: "0.2.22")
]
Or in Xcode: File → Add Package Dependencies → https://github.com/christopherkarani/Wax.git
import Foundation
import Wax
let url = URL.documentsDirectory.appending(path: "agent.wax")
// Open a memory store
let memory = try await Memory(at: url)
// Save something
try await memory.save("The user is building a habit tracker in SwiftUI.")
// Recall it later — works even if the app was killed
let results = try await memory.search("What is the user building?")
if let best = results.items.first {
print("Found: \(best.text)")
// → "Found: The user is building a habit tracker in SwiftUI."
}
try await memory.close()
import SwiftUI
import Wax
struct ContentView: View {
@State private var result = "Searching…"
var body: some View {
Text(result)
.task {
do {
let url = URL.documentsDirectory.appending(path: "agent.wax")
let memory = try await Memory(at: url)
try await memory.save("The user is building a habit tracker in SwiftUI.")
let context = try await memory.search("What is the user building?")
result = context.items.first?.text ?? "Nothing found"
try await memory.close()
} catch {
result = "Error: \(error.localizedDescription)"
}
}
}
}
import Foundation
import Wax
@main
struct AgentMemory {
static func main() async throws {
let url = URL.documentsDirectory.appending(path: "agent.wax")
let memory = try await Memory(at: url)
try await memory.save("The user is building a habit tracker in SwiftUI.")
let results = try await memory.search("What is the user building?")
if let best = results.items.first {
print("Found: \(best.text)")
}
try await memory.close()
}
}
Prefer a checked-in harness over pasting snippets? Run the demo — Resources/WaxDemo exercises the public Memory APIs on macOS 26.
Looking to store persistent facts and long-term reasoning? Structured memory (entities and facts) is available today through the MCP server tools (entity_upsert, fact_assert, facts_query, …) described in the Agent Quick Start. The Swift-level structured memory API is package-internal for now; see Structured Memory (contributor documentation).
Resources/WaxDemo is a small Swift package that stress-tests the public Wax APIs (save/search durability, embeddings, Foundation Models, error paths).
Requires macOS 26 (the demo package declares that platform; Foundation Models mode needs Apple Intelligence where available).
cd Resources/WaxDemo
swift run WaxDemo --mode all
Useful modes:
| Mode | What it runs |
|---|---|
memory |
Save → search → close → reopen → search |
framestore |
Low-level frame create/put/read/delete |
embeddings |
Built-in MiniLM + hybrid/vector search |
fm |
Foundation Models memory session (or a clear unavailable message) |
errors |
Validation / WaxError paths |
all |
Everything above (default) |
swift run WaxDemo --mode memory
swift run WaxDemo --mode fm --keep --store /tmp/wax-demo.wax
--keep leaves the .wax file on disk; --store PATH picks the file location.
Source: Resources/WaxDemo.
# Build from source (requires Swift 6+)
git clone https://github.com/christopherkarani/Wax.git
cd Wax
swift build -c release
# The binary is now at .build/release/wax-cli
cp .build/release/wax-cli /usr/local/bin/
# Save a memory
wax-cli remember "An automobile needs periodic maintenance."
# Search it back
wax-cli search "car service" --mode hybrid --topK 3
# Simple text-only search (no setup required)
wax-cli search "car service" --mode text
# Linux / cloud TUI demo + public-API stress (text-only; no MiniLM claim)
wax-cli demo --run
wax-cli demo --stress --run
The dashboard tracks retrieval time live (last / p50 / p95 / n) on every successful Memory.search.
On Linux, build wax-cli without -DGRDBCUSTOMSQLITE (that flag breaks GRDB's system SQLite overlay):
swift build --product wax-cli --traits default,MCPServer
BIN="$(swift build --product wax-cli --show-bin-path --traits default,MCPServer)/wax-cli"
"$BIN" demo --run
"$BIN" demo --stress --run
# Hold each TUI frame for a recording or live walkthrough
"$BIN" demo --run --pace-ms 1500 --hold-ms 4000
For long-running sessions, start the daemon:
wax-cli daemon --store-path ~/.wax/memory.wax
Then send JSON-line commands:
{"id":"1","command":"remember","content":"An automobile needs periodic maintenance."}
{"id":"2","command":"search","query":"car service","mode":"hybrid","topK":3}