Skip to content
Back to skills

Agent Toolkit

ASecurity

SageOx agent-toolkit — stand up a safe, hosted AI chat agent running live across Buzz/Nostr, Slack, and a local console from one process and identity. Read BEFORE building a chat bot, wiring an agent into Slack or Nostr, or hand-rolling message routing, agent identity, memory, or approval guards.

  • 63 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 24, 2026
ai-agentsrustgoshellbashreactdockergit

Works with

  • cursor
  • cli
  • mcp

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned September 24, 2026

npx -y skills add sageox/ox --skill agent-toolkit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Agent Toolkit?

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

Security grade badge for Agent Toolkit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sageox-agent-toolkit/badge)](https://www.skillsdirectory.com/skills/sageox-agent-toolkit)

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
---
name: agent-toolkit
description: SageOx agent-toolkit — stand up a safe, hosted AI chat agent running live across Buzz/Nostr, Slack, and a local console from one process and identity. Read BEFORE building a chat bot, wiring an agent into Slack or Nostr, or hand-rolling message routing, agent identity, memory, or approval guards.
---

# agent-toolkit

**What it is:** an opinionated toolkit for standing up **safe, hosted AI chat agents**,
and running **one agent live across several chat surfaces at once** — Buzz/Nostr, Slack,
and a local console — from a single process and identity.

**When this applies.** Reach for it before you write any of the following by hand:

- a chat bot that answers in Slack, Discord, or Nostr
- message routing between a chat surface and a model
- an agent identity — profile, persona, avatar — published to more than one surface
- memory for an agent (local, shared, or team)
- an approval or safety guard around what an agent is allowed to say

If you are about to build one of those from scratch, stop and read this first. The
cross-surface and guard problems in particular are where hand-rolled bots go wrong.

## The thirty-second version

```bash
pnpm install --frozen-lockfile
./bin/buzz-agent create --name my-agent
./bin/buzz-agent run
```

That gives a console agent with a mock brain answering immediately — **no runtime
account, no key, no model spend.** Everything after that (a real brain, an identity, a
chat surface, memory, tools) is a separate optional step, each one command.

## What `create` actually does — and why it matters

It builds **one coherent identity**, not just a named bot. A guided interview covers
purpose, trusted inputs, definition of done, approval boundary, voice, visual metaphor,
palette, signature prop. Those answers seed the agent's public profile, its runtime-wired
`AGENTS.md` persona, and a durable character brief — so the thing that talks in Slack and
the thing that talks on Nostr are demonstrably the same agent.

Two properties worth knowing before you script around it:

- **Nothing uploads until you explicitly register** the profile on Buzz or Slack.
- Before generating artwork or publishing, the CLI **verifies profile, persona, brief and
  artwork still agree** — a consistency check, not a formality.

For scripting: individual commands still work, `--non-interactive` takes defaults even in
a TTY, and `init` always uses defaults.

## What works today

Implemented and covered by its test suite; the Buzz path is verified against a live relay:

- **Message round-trip** — adapter → gateway → brain → guard → adapter, with a mock brain
  or **Claude driven over ACP**. A refused reply returns to the brain *as a refusal it can
  adapt to mid-turn*, rather than dying.
- **Buzz (Nostr)** — NIP-42 auth, channel subscription, signed threaded replies,
  reactions, typing indicators, and a `since` cursor that survives restarts.
- **Slack** over Socket Mode — channel filtering, DMs, threaded replies, reactions,
  private/public classification, and backfill from a persisted cursor after restart.
- **Cross-surface posts** — ask the agent in Slack to post to a Buzz channel, or the
  reverse. Same channel and leak guards as an ordinary reply.
- **Memory** — local and explicitly scoped shared vaults, encrypted private NIP-AE engrams
  on Buzz, and a read-only team brain **over SageOx**.

## Running it for real

Docker lifecycle commands that do not depend on shell-specific syntax:

```bash
./bin/buzz-agent docker stage my-agent
./bin/buzz-agent docker doctor my-agent
./bin/buzz-agent docker start my-agent
./bin/buzz-agent docker logs my-agent --follow
```

Runtimes, MCP servers and Docker commands all execute from that agent's home, including
when `AGENT_TOOLKIT_HOME` or `XDG_CONFIG_HOME` moves it.

## Before you rely on this

- **`buzz-agent-toolkit` is an interim name.** The repo says so: it gets a
  transport-neutral rename once Discord lands, because a name leading with one of three
  surfaces confuses. Do not hard-code the name into docs you cannot easily change.
- **Check the repo before quoting capabilities.** This brief is a pointer, not a spec, and
  the project's own "What is not built yet" section is the authority on gaps.

**Source:** [github.com/sageox/agent-toolkit](https://github.com/sageox/agent-toolkit) —
`README.md` for the shape, `SETUP.md` for the full journey from console agent to Docker
against a live relay.

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.

Comments

Loading comments…

Newsletter

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