Create a repository for your own bclaw, deployed to your own AWS account.
bclaw is short for "BusinessClaw": an opinionated deployment of hermes-agent configured as a long-running "claw" within your Slack workspace.
Create, customize and deploy as many as you'd like. Each generated bclaw repository corresponds to one specific long-running agent and Slack application/user.
For example, you could generate a @swe-pal for a "Devin" type experience: code reviews, pull requests, etc. Or, a @reportclaw that posts reports at scheduled times to configured channels.
-
Generate your bclaw repository
npx @boldblackai/create-bclaw swe-pal
-
Follow the instructions in the README to create the IAM user and policy to get the
AWS_ACCESS_KEY_IDandAWS_SECRET_ACCESS_KEYfor.env. This also walks you through creating and installing the Slack app into your workspace to get theSLACK_APP_TOKENandSLACK_BOT_TOKENyou'll need later. -
The generated repository is a set of skills, so open up
swe-palin your favorite harness (Pi, Hermes, OpenCode) -
Run the
/setup-bclawskill. This will prompt you for an inference provider, it supports OpenRouter, ZAI, and Anthropic out of the box, but trivial to use any that hermes-agent already supports. -
To manage it (update running image version, update skills/SOUL.md, etc) you can use the
/manage-bclawskill. -
To uninstall it, run the
/teardown-bclawskill.
-
hermes-agent running on ECS Fargate via our hardened harness Docker image.
-
GitHub & Slack integration
-
Persisted and backed up via AWS EFS.
npx @boldblackai/create-bclaw <name>
# or equivalently
npm init @boldblackai/bclaw <name>If no name is given (and stdin is a TTY), you'll be prompted for one.
<name> must match ^[a-zA-Z]([a-zA-Z0-9-]*[a-zA-Z0-9])?$ and be 1–59 characters. It becomes
the CloudFormation stack name, IAM role prefix (<name>-exec, <name>-task),
ECS cluster/service, log group, SSM namespace (/<name>/), KMS alias
(alias/<name>-ssm), and EFS tag (<name>-data). The 59-char ceiling keeps the
-exec/-task role suffixes under IAM's 64-char role-name limit.
--force— generate into a non-empty target directory, merging with existing files (default: refuse).--version,-V— print the version.--help,-h— show help.
pnpm install # installs deps + builds dist/ (prepare)
pnpm build # tsc
pnpm exec tsc --noEmit # typecheck only
pnpm lint # biome check .
pnpm test # tsc && node --test (golden test)Run npm publish
MIT