Skip to content

Commit de91240

Browse files
authored
rename: Hornet → Baudbot (#16)
1 parent 24f772a commit de91240

35 files changed

Lines changed: 599 additions & 599 deletions

.env.schema

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Hornet agent configuration schema
1+
# Baudbot agent configuration schema
22
# See CONFIGURATION.md for details on each variable.
33
#
44
# Secrets live at ~/.config/.env (600 perms, never committed).
@@ -48,16 +48,16 @@ AGENTMAIL_API_KEY=
4848

4949
# Agent's monitored email address
5050
# @sensitive=false @type=email
51-
HORNET_EMAIL=
51+
BAUDBOT_EMAIL=
5252

5353
# Shared secret for email sender authentication
5454
# @type=string
55-
HORNET_SECRET=
55+
BAUDBOT_SECRET=
5656

5757
# Comma-separated sender email allowlist
5858
# @sensitive=false @type=string
5959
# @example="you@example.com,teammate@example.com"
60-
HORNET_ALLOWED_EMAILS=
60+
BAUDBOT_ALLOWED_EMAILS=
6161

6262
# ── Sentry (optional) ───────────────────────────────────────────────────────
6363

@@ -91,15 +91,15 @@ KERNEL_API_KEY=
9191

9292
# Unix username of the agent
9393
# @sensitive=false @type=string
94-
HORNET_AGENT_USER=hornet_agent
94+
BAUDBOT_AGENT_USER=baudbot_agent
9595

9696
# Agent's home directory
9797
# @sensitive=false @type=string
98-
HORNET_AGENT_HOME=/home/hornet_agent
98+
BAUDBOT_AGENT_HOME=/home/baudbot_agent
9999

100100
# Path to admin-owned source repo (enables source repo write protection)
101101
# @sensitive=false @type=string
102-
HORNET_SOURCE_DIR=
102+
BAUDBOT_SOURCE_DIR=
103103

104104
# ── Bridge ───────────────────────────────────────────────────────────────────
105105

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727

2828
- name: ShellCheck
2929
run: |
30-
find bin/ setup.sh start.sh -type f \( -name '*.sh' -o -name 'hornet-safe-bash' -o -name 'hornet-docker' \) \
30+
find bin/ setup.sh start.sh -type f \( -name '*.sh' -o -name 'baudbot-safe-bash' -o -name 'baudbot-docker' \) \
3131
| xargs shellcheck -s bash -S warning
3232
3333
test:

.github/workflows/integration.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,12 @@ jobs:
5858
5959
- name: Upload source
6060
run: |
61-
tar czf /tmp/hornet-src.tar.gz \
61+
tar czf /tmp/baudbot-src.tar.gz \
6262
--exclude=node_modules --exclude=.git .
6363
scp -o StrictHostKeyChecking=no -o BatchMode=yes \
6464
-i ~/.ssh/ci_key \
65-
/tmp/hornet-src.tar.gz \
66-
"root@${{ steps.droplet.outputs.DROPLET_IP }}:/tmp/hornet-src.tar.gz"
65+
/tmp/baudbot-src.tar.gz \
66+
"root@${{ steps.droplet.outputs.DROPLET_IP }}:/tmp/baudbot-src.tar.gz"
6767
6868
- name: Setup and test
6969
run: |

AGENTS.md

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Hornet — Agent Guidelines
1+
# Baudbot — Agent Guidelines
22

3-
Hornet is hardened infrastructure for running always-on AI agents. Source is admin-owned; agents run from deployed copies.
3+
Baudbot is hardened infrastructure for running always-on AI agents. Source is admin-owned; agents run from deployed copies.
44

55
## Repo Layout
66

@@ -9,8 +9,8 @@ bin/ security & operations scripts
99
deploy.sh stages source → /tmp → agent runtime (run as admin)
1010
security-audit.sh 24-check security posture audit
1111
setup-firewall.sh iptables per-UID egress allowlist
12-
hornet-safe-bash shell command deny list (installed to /usr/local/bin)
13-
hornet-docker Docker wrapper (blocks privilege escalation)
12+
baudbot-safe-bash shell command deny list (installed to /usr/local/bin)
13+
baudbot-docker Docker wrapper (blocks privilege escalation)
1414
harden-permissions.sh filesystem hardening (runs on boot)
1515
scan-extensions.mjs extension static analysis
1616
redact-logs.sh secret scrubber for session logs
@@ -46,29 +46,29 @@ See [CONFIGURATION.md](CONFIGURATION.md) for all env vars and how to obtain them
4646

4747
## Architecture: Source / Runtime Separation
4848

49-
The admin owns the source (`~/hornet/`). The agent (`hornet_agent` user) owns the runtime. The agent **cannot read the source repo** — admin home is `700`.
49+
The admin owns the source (`~/baudbot/`). The agent (`baudbot_agent` user) owns the runtime. The agent **cannot read the source repo** — admin home is `700`.
5050

5151
Deploy is a one-way push:
5252
```
53-
admin: ~/hornet/bin/deploy.sh
54-
→ stages to /tmp/hornet-deploy.XXXXXX (world-readable)
55-
→ copies as hornet_agent via sudo -u
56-
→ stamps hornet-version.json + hornet-manifest.json (SHA256 hashes)
53+
admin: ~/baudbot/bin/deploy.sh
54+
→ stages to /tmp/baudbot-deploy.XXXXXX (world-readable)
55+
→ copies as baudbot_agent via sudo -u
56+
→ stamps baudbot-version.json + baudbot-manifest.json (SHA256 hashes)
5757
→ cleans up staging dir
5858
```
5959

6060
Agent runtime layout:
6161
```
62-
/home/hornet_agent/
62+
/home/baudbot_agent/
6363
├── runtime/
6464
│ ├── start.sh deployed launcher
6565
│ ├── bin/ harden-permissions.sh, redact-logs.sh
6666
│ └── slack-bridge/ deployed bridge
6767
├── .pi/agent/
6868
│ ├── extensions/ deployed extensions
6969
│ ├── skills/ agent-owned (can modify freely)
70-
│ ├── hornet-version.json deploy version (git SHA, timestamp)
71-
│ └── hornet-manifest.json SHA256 hashes of all deployed files
70+
│ ├── baudbot-version.json deploy version (git SHA, timestamp)
71+
│ └── baudbot-manifest.json SHA256 hashes of all deployed files
7272
├── workspace/ project repos + git worktrees
7373
└── .config/.env secrets (600 perms)
7474
```
@@ -77,18 +77,18 @@ Agent runtime layout:
7777

7878
```bash
7979
# First-time install (interactive — handles everything)
80-
sudo ~/hornet/install.sh
80+
sudo ~/baudbot/install.sh
8181

82-
# Edit source files directly in ~/hornet/
82+
# Edit source files directly in ~/baudbot/
8383

8484
# Deploy to agent runtime
85-
~/hornet/bin/deploy.sh
85+
~/baudbot/bin/deploy.sh
8686

8787
# Launch agent
88-
sudo -u hornet_agent ~/runtime/start.sh
88+
sudo -u baudbot_agent ~/runtime/start.sh
8989

9090
# Or in tmux
91-
tmux new-window -n hornet 'sudo -u hornet_agent ~/runtime/start.sh'
91+
tmux new-window -n baudbot 'sudo -u baudbot_agent ~/runtime/start.sh'
9292
```
9393

9494
## Running Tests
@@ -136,8 +136,8 @@ eval "$(bin/ci/droplet.sh create my-test 217410218 /tmp/ci_key.pub)"
136136

137137
# Wait for SSH, upload source, run a CI script
138138
bin/ci/droplet.sh wait-ssh "$DROPLET_IP" /tmp/ci_key
139-
tar czf /tmp/hornet-src.tar.gz --exclude=node_modules --exclude=.git .
140-
scp -i /tmp/ci_key /tmp/hornet-src.tar.gz "root@$DROPLET_IP:/tmp/"
139+
tar czf /tmp/baudbot-src.tar.gz --exclude=node_modules --exclude=.git .
140+
scp -i /tmp/ci_key /tmp/baudbot-src.tar.gz "root@$DROPLET_IP:/tmp/"
141141
bin/ci/droplet.sh run "$DROPLET_IP" /tmp/ci_key bin/ci/setup-ubuntu.sh
142142

143143
# Or SSH in for manual poking
@@ -153,9 +153,9 @@ The CI scripts (`bin/ci/setup-ubuntu.sh`, `bin/ci/setup-arch.sh`) run `install.s
153153

154154
## Security Notes
155155

156-
- `tool-guard.ts` blocks: writes outside `/home/hornet_agent/`, writes to source repo, writes to protected runtime files, dangerous bash patterns (reverse shells, fork bombs, rm -rf /, etc.), credential exfiltration.
157-
- `hornet-safe-bash` (root-owned, `/usr/local/bin/`) is a second layer that blocks the same patterns at the shell level.
158-
- The firewall (`setup-firewall.sh`) restricts `hornet_agent`'s network egress to an allowlist.
156+
- `tool-guard.ts` blocks: writes outside `/home/baudbot_agent/`, writes to source repo, writes to protected runtime files, dangerous bash patterns (reverse shells, fork bombs, rm -rf /, etc.), credential exfiltration.
157+
- `baudbot-safe-bash` (root-owned, `/usr/local/bin/`) is a second layer that blocks the same patterns at the shell level.
158+
- The firewall (`setup-firewall.sh`) restricts `baudbot_agent`'s network egress to an allowlist.
159159
- `/proc` is mounted with `hidepid=2` — agent can only see its own processes.
160160
- Secrets in `~/.config/.env` are `600` perms, never committed.
161161
- Session logs are auto-redacted of API keys/tokens on boot.

CONFIGURATION.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# Configuration
22

3-
All secrets and configuration live in `~/.config/.env` on the agent's home directory (`/home/hornet_agent/.config/.env`). This file is `600` permissions and never committed to the repo.
3+
All secrets and configuration live in `~/.config/.env` on the agent's home directory (`/home/baudbot_agent/.config/.env`). This file is `600` permissions and never committed to the repo.
44

55
## Schema Validation
66

7-
Hornet uses [Varlock](https://varlock.dev) to validate environment variables at startup. The schema (`.env.schema`) is committed to the repo and deployed to `~/.config/.env.schema` alongside the secrets file. It defines types, required/optional status, and sensitivity for each variable.
7+
Baudbot uses [Varlock](https://varlock.dev) to validate environment variables at startup. The schema (`.env.schema`) is committed to the repo and deployed to `~/.config/.env.schema` alongside the secrets file. It defines types, required/optional status, and sensitivity for each variable.
88

99
`start.sh` runs `varlock load` to validate before launching — the agent won't start with missing or malformed variables. The bridge uses `varlock run` to inject validated env vars. Varlock must be installed on the agent system (`brew install dmno-dev/tap/varlock` or `curl -sSfL https://varlock.dev/install.sh | sh -s`).
1010

@@ -37,9 +37,9 @@ The agent also uses an SSH key (`~/.ssh/id_ed25519`) for git push. Setup generat
3737
| Variable | Description | How to get it |
3838
|----------|-------------|---------------|
3939
| `AGENTMAIL_API_KEY` | AgentMail API key | [app.agentmail.to](https://app.agentmail.to) — sign up and create an API key |
40-
| `HORNET_EMAIL` | Agent's email address | The email address the control agent monitors (e.g. `your-agent@agentmail.to`). Create the inbox via the AgentMail dashboard or let the agent create it on startup. |
41-
| `HORNET_SECRET` | Shared secret for email authentication | Generate a random string: `openssl rand -hex 32`. Senders must include this in their email for it to be processed. |
42-
| `HORNET_ALLOWED_EMAILS` | Comma-separated sender allowlist | Email addresses allowed to send tasks. Example: `you@example.com,teammate@example.com` |
40+
| `BAUDBOT_EMAIL` | Agent's email address | The email address the control agent monitors (e.g. `your-agent@agentmail.to`). Create the inbox via the AgentMail dashboard or let the agent create it on startup. |
41+
| `BAUDBOT_SECRET` | Shared secret for email authentication | Generate a random string: `openssl rand -hex 32`. Senders must include this in their email for it to be processed. |
42+
| `BAUDBOT_ALLOWED_EMAILS` | Comma-separated sender allowlist | Email addresses allowed to send tasks. Example: `you@example.com,teammate@example.com` |
4343

4444
## Optional Variables
4545

@@ -67,18 +67,18 @@ The agent also uses an SSH key (`~/.ssh/id_ed25519`) for git push. Setup generat
6767

6868
| Variable | Description | Default |
6969
|----------|-------------|---------|
70-
| `HORNET_AGENT_USER` | Unix username of the agent | `hornet_agent` |
71-
| `HORNET_AGENT_HOME` | Agent's home directory | `/home/$HORNET_AGENT_USER` |
72-
| `HORNET_SOURCE_DIR` | Path to admin-owned source repo | *(empty — set this to enable source repo write protection)* |
70+
| `BAUDBOT_AGENT_USER` | Unix username of the agent | `baudbot_agent` |
71+
| `BAUDBOT_AGENT_HOME` | Agent's home directory | `/home/$BAUDBOT_AGENT_USER` |
72+
| `BAUDBOT_SOURCE_DIR` | Path to admin-owned source repo | *(empty — set this to enable source repo write protection)* |
7373

7474
### Git Identity
7575

7676
Set during `setup.sh` via env vars (or edit `~/.gitconfig` after):
7777

7878
| Variable | Description | Default |
7979
|----------|-------------|---------|
80-
| `GIT_USER_NAME` | Git commit author name | `hornet-agent` |
81-
| `GIT_USER_EMAIL` | Git commit author email | `hornet-agent@users.noreply.github.com` |
80+
| `GIT_USER_NAME` | Git commit author name | `baudbot-agent` |
81+
| `GIT_USER_EMAIL` | Git commit author email | `baudbot-agent@users.noreply.github.com` |
8282

8383
### Bridge
8484

@@ -104,9 +104,9 @@ SENTRY_CHANNEL_ID=C0987654321
104104

105105
# Email
106106
AGENTMAIL_API_KEY=...
107-
HORNET_EMAIL=my-agent@agentmail.to
108-
HORNET_SECRET=<openssl rand -hex 32>
109-
HORNET_ALLOWED_EMAILS=you@example.com
107+
BAUDBOT_EMAIL=my-agent@agentmail.to
108+
BAUDBOT_SECRET=<openssl rand -hex 32>
109+
BAUDBOT_ALLOWED_EMAILS=you@example.com
110110

111111
# Sentry (optional)
112112
SENTRY_AUTH_TOKEN=sntrys_...
@@ -116,7 +116,7 @@ SENTRY_ORG=my-org
116116
KERNEL_API_KEY=...
117117

118118
# Tool guard
119-
HORNET_SOURCE_DIR=/home/your_username/hornet
119+
BAUDBOT_SOURCE_DIR=/home/your_username/baudbot
120120
```
121121

122122
## Applying Configuration
@@ -125,8 +125,8 @@ After editing `~/.config/.env`:
125125

126126
```bash
127127
# Restart the agent to pick up changes
128-
sudo -u hornet_agent pkill -u hornet_agent
129-
sudo -u hornet_agent ~/runtime/start.sh
128+
sudo -u baudbot_agent pkill -u baudbot_agent
129+
sudo -u baudbot_agent ~/runtime/start.sh
130130
```
131131

132132
The bridge and all sub-agents load `~/.config/.env` on startup. If varlock is installed, variables are validated against `.env.schema` before injection.

0 commit comments

Comments
 (0)