B3nd SDK development plugins
npx claudepluginhub bandeira-tech/b3nd-sdkB3nd SDK development tools - skills for building apps with the B3nd universal persistence protocol
A protocol for URI-based data where users own their data, privacy is encryption, and any app can read the same addresses.
Every piece of data has a URI. Four operations do everything:
const client = new HttpClient({ url: "https://testnet-evergreen.fire.cat" });
// Write — submit a message to a URI
await client.receive(["mutable://open/my-app/greeting", {
text: "Hello, world",
}]);
// Read — get data from any URI
const result = await client.read("mutable://open/my-app/greeting");
console.log(result.record?.data); // { text: "Hello, world" }
// List — browse URIs by prefix
const items = await client.list("mutable://open/my-app/");
// Delete — remove data
await client.delete("mutable://open/my-app/greeting");
URIs define behavior (mutable, immutable, encrypted), not meaning. The same protocol works for profiles, posts, configs, messages — any data.
| Package | Registry | Use Case |
|---|---|---|
| @bandeira-tech/b3nd-sdk | JSR | Deno, servers |
| @bandeira-tech/b3nd-web | NPM | Browser, React |
// Deno/Server
import {
ConsoleClient,
HttpClient,
MemoryClient,
PostgresClient,
S3Client,
SqliteClient,
} from "@bandeira-tech/b3nd-sdk";
// Browser/React
import {
HttpClient,
LocalStorageClient,
WalletClient,
} from "@bandeira-tech/b3nd-web";
const client = new HttpClient({ url: "http://localhost:9942" });
// Write
await client.receive(["mutable://users/alice/profile", {
name: "Alice",
age: 30,
}]);
// Read
const result = await client.read("mutable://users/alice/profile");
console.log(result.record?.data); // { name: "Alice", age: 30 }
// List
const items = await client.list("mutable://users/");
console.log(items.data); // [{ uri: "mutable://users/alice/profile" }]
// Delete
await client.delete("mutable://users/alice/profile");
| Client | Environment | Backend |
|---|---|---|
MemoryClient | Any | In-memory storage |
HttpClient | Any | Remote HTTP server |
WebSocketClient | Any | Remote WebSocket server |
PostgresClient | Deno/Node | PostgreSQL database |
MongoClient | Deno/Node | MongoDB database |
SqliteClient | Deno/Node | SQLite database |
FilesystemClient | Deno/Node | Local filesystem |
S3Client | Deno/Node | S3-compatible storage |
IpfsClient | Deno/Node | IPFS via Kubo |
ConsoleClient | Any | Console output (write-only) |
LocalStorageClient | Browser | localStorage |
IndexedDBClient | Browser | IndexedDB |
The B3nd node lives in apps/b3nd-node/. Configuration is via .env:
| Variable | Description | Example |
|---|---|---|
BACKEND_URL | Comma-separated backends | memory://, postgresql://..., sqlite://..., s3://bucket, or combinations |
SCHEMA_MODULE | Path to schema file | ./example-schema.ts |
PORT | Listen port | 9942 |
CORS_ORIGIN | Allowed origins | * |
When multiple backends are listed, writes broadcast to all and reads try each in order until one succeeds.
cd apps/b3nd-node
cp .env.example .env # BACKEND_URL=memory://
deno task dev # http://localhost:9942
Start a Postgres container, then point the node at it:
# Ephemeral test DBs (Postgres :55432, Mongo :57017)
make up p=test
# — or — persistent dev DBs (Postgres :5432, Mongo :27017)
make up p=dev
Then set .env:
# Test DB
BACKEND_URL=postgresql://postgres:postgres@localhost:55432/b3nd_test
# Dev DB
BACKEND_URL=postgresql://b3nd:b3nd@localhost:5432/b3nd
cd apps/b3nd-node
deno task dev
The node auto-creates the required tables on first connect.
Claude Code marketplace entries for the plugin-safe Antigravity Awesome Skills library and its compatible editorial bundles.
Production-ready workflow orchestration with 84 marketplace plugins, 192 local specialized agents, and 156 local skills - optimized for granular installation and minimal token usage
Directory of popular Claude Code extensions including development tools, productivity plugins, and MCP integrations