Skip to content

beige-agent/beige-toolkit

Β 
Β 

Repository files navigation

beige-toolkit

πŸ› οΈ A collection of tools for Beige agents.

Beige is an open-source AI agent framework with a gateway/sandbox architecture. This toolkit provides gateway-side tools that give agents access to external services β€” GitHub, Slack, Confluence, Chrome, macOS Calendar, conversation history, and other agents.

All tools run on the gateway (host machine), not inside agent sandboxes. Each tool supports fine-grained access control via config-level allow/deny lists so you can scope exactly what each agent is permitted to do.

Tools

Tool Description Requires
github Interact with GitHub via the gh CLI β€” repos, issues, PRs, releases, workflow runs, and more. Repository deletion is permanently blocked. Raw API access is off by default. gh installed and authenticated
slack Interact with Slack workspaces β€” list conversations, read message history, send messages, add reactions. Access controlled via command-level allow/deny lists. slackcli installed and authenticated
confluence Read and write Atlassian Confluence β€” pages, spaces, search, attachments, comments, content properties, and exports. Supports both command-level and space-level access control. confluence-cli installed and authenticated
chrome Control a Chrome browser β€” navigation, screenshots, DOM inspection, JS evaluation, network monitoring, performance analysis. Each agent gets its own persistent browser profile. Google Chrome installed
apple-calendar Read events from macOS Calendar β€” supports iCloud, Google, Exchange, and subscribed calendars. List calendars, view events by date/range, and search by title, notes, or location. Read-only. macOS, Xcode Command Line Tools
sessions Browse and search conversation history. Agents can only access their own sessions β€” listing, full message retrieval, and pattern-based search. β€”
spawn Spawn other Beige agents (or sub-agents of yourself) with multi-turn conversations. Depth-limited and opt-in β€” no targets allowed until explicitly configured. β€”

Installation

Install all tools

From npm (recommended for stable releases):

beige tools install npm:@matthias-hausberger/beige-toolkit

# Specific version
beige tools install npm:@matthias-hausberger/beige-toolkit@0.1.0

From GitHub (latest from main branch):

beige tools install github:matthias-hausberger/beige-toolkit

Install individual tools

Cherry-pick specific tools from the repository via GitHub:

beige tools install github:matthias-hausberger/beige-toolkit/tools/github
beige tools install github:matthias-hausberger/beige-toolkit/tools/chrome
beige tools install github:matthias-hausberger/beige-toolkit/tools/slack

Install from local checkout (development)

beige tools install ./path/to/beige-toolkit

Usage

After installing, add tools to your agents in config.json5:

{
  agents: {
    assistant: {
      model: { provider: "anthropic", model: "claude-sonnet-4-6" },
      tools: ["github", "chrome", "slack", "sessions"],
    },
  },
}

Installed tools are auto-discovered β€” no need to specify path or target. Add a tools.<name> entry only for custom config:

{
  tools: {
    github: {
      config: { allowedCommands: ["repo", "issue", "pr"] },
    },
    slack: {
      config: { denyCommands: ["messages send", "messages draft"] },
    },
    chrome: {
      config: { headless: true, idleTimeoutMinutes: 15 },
    },
  },
}

Access Control

Every tool supports fine-grained permission scoping via config:

tools: {
  github: {
    config: { allowedCommands: ["issue", "pr"] },
  },
  slack: {
    config: { denyCommands: ["messages send", "messages draft"] },
  },
},

Per-Agent Overrides

Use per-agent toolConfigs to deep-merge overrides with the base tool config:

tools: {
  chrome: {
    config: { headless: true, timeout: 60 },
  },
},
agents: {
  qa: {
    tools: ["chrome"],
    toolConfigs: {
      chrome: { headless: false, timeout: 120 },
    },
  },
  assistant: {
    tools: ["chrome"],
    // uses base config as-is
  },
},

See each tool's README for the full list of config options.

Managing Tools

beige tools list                    # List all installed tools
beige tools update                  # Update all tools
beige tools update github           # Update a specific tool
beige tools remove github           # Remove a tool

Documentation Structure

Each tool has two documentation files:

File Audience Purpose
README.md Users / developers Overview, prerequisites, configuration reference
SKILL.md AI agents Usage examples, calling conventions, workflows

Development

Prerequisites

  • Node.js β‰₯ 22
  • pnpm

Setup

git clone https://github.com/matthias-hausberger/beige-toolkit
cd beige-toolkit
pnpm install

Working Locally Against Beige

devDependencies references the published @matthias-hausberger/beige npm package so the project builds on any machine without extra setup. When you also have the beige repository checked out as a sibling directory (../beige), pnpm's overrides block in package.json automatically redirects the dependency to that local copy, letting you test against unreleased changes.

parent/
  beige/          ← local beige repo (optional)
  beige-toolkit/  ← this repo
# With sibling beige repo β€” uses local beige automatically via pnpm overrides
cd beige-toolkit
pnpm install

# Without sibling beige repo β€” installs the published npm version, no extra steps needed
cd beige-toolkit
pnpm install

If you are on a machine that does not have a sibling beige directory, remove or comment out the pnpm.overrides entry in package.json before running pnpm install, or pnpm will error because the file:../beige path does not exist:

// package.json β€” comment out when ../beige is not present
"pnpm": {
  "overrides": {
    // "@matthias-hausberger/beige": "file:../beige"
  }
}

To start the gateway and install the toolkit for local development:

# Start the beige gateway
cd ../beige
pnpm run beige gateway start

# Install the local toolkit
cd ../beige-toolkit
bash scripts/dev-install.sh

Beige symlinks the local directory, so edits to tools/ take effect on the next gateway restart.

Running Tests

pnpm test              # Run all tests
pnpm test:watch        # Watch mode
pnpm typecheck         # Type-check
pnpm smoke             # Full smoke sequence

Adding a New Tool

  1. Create tools/<name>/ with tool.json, package.json, index.ts, README.md, SKILL.md
  2. Write tests in tools/<name>/__tests__/
  3. If the tool has npm dependencies, add them to tools/<name>/package.json under dependencies

Each tool has its own package.json so it can be installed individually via GitHub. For tools with no runtime dependencies, the package.json just needs name and type:

{
  "name": "@beige/tool-my-tool",
  "private": true,
  "type": "module"
}

Publishing

npm publish --access public

The files field in the root package.json controls what goes into the npm tarball. Only tool source files are included β€” tests, scripts, and dev config are excluded.

Repository Structure

beige-toolkit/
β”œβ”€β”€ package.json              # npm package config
β”œβ”€β”€ tsconfig.json
β”œβ”€β”€ vitest.config.ts
β”œβ”€β”€ tools/
β”‚   β”œβ”€β”€ github/
β”‚   β”‚   β”œβ”€β”€ tool.json         # Tool manifest (name, description, target)
β”‚   β”‚   β”œβ”€β”€ package.json      # Tool's own dependencies (if any)
β”‚   β”‚   β”œβ”€β”€ index.ts          # Handler (runs on the gateway host)
β”‚   β”‚   β”œβ”€β”€ README.md         # User/developer documentation
β”‚   β”‚   β”œβ”€β”€ SKILL.md          # Agent usage guide
β”‚   β”‚   └── __tests__/
β”‚   β”œβ”€β”€ chrome/
β”‚   β”‚   β”œβ”€β”€ tool.json
β”‚   β”‚   β”œβ”€β”€ package.json
β”‚   β”‚   β”œβ”€β”€ index.ts
β”‚   β”‚   β”œβ”€β”€ mcp-client.ts     # Additional module
β”‚   β”‚   β”œβ”€β”€ process-manager.ts
β”‚   β”‚   β”œβ”€β”€ README.md
β”‚   β”‚   β”œβ”€β”€ SKILL.md
β”‚   β”‚   β”œβ”€β”€ skills/           # Detailed agent guides
β”‚   β”‚   └── __tests__/
β”‚   β”œβ”€β”€ slack/
β”‚   β”œβ”€β”€ confluence/
β”‚   β”œβ”€β”€ apple-calendar/
β”‚   β”œβ”€β”€ sessions/
β”‚   └── spawn/
β”œβ”€β”€ test-utils/
β”œβ”€β”€ tests/                    # Repo-level smoke tests
└── scripts/
    β”œβ”€β”€ dev-install.sh
    └── smoke.sh

License

MIT

About

πŸ› οΈ A common set of tools for Beige agents (@matthias-hausberger/beige)

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • TypeScript 98.5%
  • Swift 1.3%
  • Shell 0.2%