2026-01-10 05:14:09 +01:00
# 🦞 Clawdbot — Personal AI Assistant
2025-11-25 04:44:10 +01:00
2025-11-25 14:29:21 +01:00
< p align = "center" >
2026-01-10 05:14:09 +01:00
< img src = "https://raw.githubusercontent.com/clawdbot/clawdbot/main/docs/whatsapp-clawd.jpg" alt = "Clawdbot" width = "400" >
2025-12-03 15:45:32 +00:00
< / p >
< p align = "center" >
< strong > EXFOLIATE! EXFOLIATE!< / strong >
2025-11-25 14:29:21 +01:00
< / p >
2025-11-25 14:42:12 +01:00
< p align = "center" >
2026-01-04 14:32:47 +00:00
< a href = "https://github.com/clawdbot/clawdbot/actions/workflows/ci.yml?branch=main" > < img src = "https://img.shields.io/github/actions/workflow/status/clawdbot/clawdbot/ci.yml?branch=main&style=for-the-badge" alt = "CI status" > < / a >
< a href = "https://github.com/clawdbot/clawdbot/releases" > < img src = "https://img.shields.io/github/v/release/clawdbot/clawdbot?include_prereleases&style=for-the-badge" alt = "GitHub release" > < / a >
2026-01-03 00:47:22 +00:00
< a href = "https://discord.gg/clawd" > < img src = "https://img.shields.io/discord/1456350064065904867?label=Discord&logo=discord&logoColor=white&color=5865F2&style=for-the-badge" alt = "Discord" > < / a >
2025-11-25 14:42:12 +01:00
< a href = "LICENSE" > < img src = "https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge" alt = "MIT License" > < / a >
< / p >
2026-01-04 14:32:47 +00:00
**Clawdbot** is a *personal AI assistant* you run on your own devices.
2026-01-13 06:16:43 +00:00
It answers you on the channels you already use (WhatsApp, Telegram, Slack, Discord, Signal, iMessage, Microsoft Teams, WebChat), can speak and listen on macOS/iOS/Android, and can render a live Canvas you control. The Gateway is just the control plane — the product is the assistant.
2025-12-19 18:41:17 +01:00
2026-01-03 22:19:41 +01:00
If you want a personal, single-user assistant that feels local, fast, and always-on, this is it.
2025-11-25 23:06:54 +01:00
2026-01-12 08:00:38 +00:00
[Website ](https://clawdbot.com ) · [Docs ](https://docs.clawd.bot ) · [Getting Started ](https://docs.clawd.bot/start/getting-started ) · [Updating ](https://docs.clawd.bot/install/updating ) · [Showcase ](https://docs.clawd.bot/start/showcase ) · [FAQ ](https://docs.clawd.bot/start/faq ) · [Wizard ](https://docs.clawd.bot/start/wizard ) · [Nix ](https://github.com/clawdbot/nix-clawdbot ) · [Docker ](https://docs.clawd.bot/install/docker ) · [Discord ](https://discord.gg/clawd )
2026-01-01 21:09:24 +01:00
2026-01-13 06:16:43 +00:00
Preferred setup: run the onboarding wizard (`clawdbot onboard` ). It walks through gateway, workspace, channels, and skills. The CLI wizard is the recommended path and works on **macOS, Linux, and Windows (via WSL2; strongly recommended)** .
2026-01-05 22:23:14 +01:00
Works with npm, pnpm, or bun.
2026-01-12 08:00:38 +00:00
New install? Start here: [Getting started ](https://docs.clawd.bot/start/getting-started )
2026-01-01 20:19:00 +01:00
2026-01-05 21:02:02 +01:00
**Subscriptions (OAuth):**
2026-01-08 03:57:50 +01:00
- **[Anthropic ](https://www.anthropic.com/ )** (Claude Pro/Max)
- **[OpenAI ](https://openai.com/ )** (ChatGPT/Codex)
2026-01-05 21:02:02 +01:00
2026-01-12 08:00:38 +00:00
Model note: while any model is supported, I strongly recommend **Anthropic Pro/Max (100/200) + Opus 4.5** for long‑ context strength and better prompt‑ injection resistance. See [Onboarding ](https://docs.clawd.bot/start/onboarding ).
2025-12-31 11:35:42 +01:00
2026-01-06 20:07:04 +00:00
## Models (selection + auth)
2026-01-12 08:00:38 +00:00
- Models config + CLI: [Models ](https://docs.clawd.bot/concepts/models )
- Auth profile rotation (OAuth vs API keys) + fallbacks: [Model failover ](https://docs.clawd.bot/concepts/model-failover )
2026-01-06 20:07:04 +00:00
2026-01-08 09:59:10 +01:00
## Install (recommended)
2026-01-05 19:40:05 +01:00
2026-01-08 09:59:10 +01:00
Runtime: **Node ≥22** .
2026-01-06 19:56:22 +00:00
2026-01-05 19:40:05 +01:00
```bash
2026-01-08 10:07:13 +01:00
npm install -g clawdbot@latest
# or: pnpm add -g clawdbot@latest
2026-01-05 19:40:05 +01:00
2026-01-08 09:59:10 +01:00
clawdbot onboard --install-daemon
2026-01-05 19:40:05 +01:00
```
2026-01-08 09:59:10 +01:00
The wizard installs the Gateway daemon (launchd/systemd user service) so it stays running.
2026-01-06 19:18:47 +01:00
2026-01-06 19:56:22 +00:00
## Quick start (TL;DR)
2026-01-05 19:43:54 +01:00
2026-01-06 03:30:33 +01:00
Runtime: **Node ≥22** .
2026-01-13 06:16:43 +00:00
Full beginner guide (auth, pairing, channels): [Getting started ](https://docs.clawd.bot/start/getting-started )
2026-01-05 19:43:54 +01:00
```bash
2026-01-08 09:59:10 +01:00
clawdbot onboard --install-daemon
2026-01-05 19:43:54 +01:00
2026-01-08 09:59:10 +01:00
clawdbot gateway --port 18789 --verbose
2026-01-05 19:43:54 +01:00
# Send a message
2026-01-09 08:59:54 +01:00
clawdbot message send --to +1234567890 --message "Hello from Clawdbot"
2026-01-05 19:43:54 +01:00
2026-01-13 02:42:09 +00:00
# Talk to the assistant (optionally deliver back to WhatsApp/Telegram/Slack/Discord/Microsoft Teams)
2026-01-08 09:59:10 +01:00
clawdbot agent --message "Ship checklist" --thinking high
2026-01-05 19:43:54 +01:00
```
2026-01-12 08:00:38 +00:00
Upgrading? [Updating guide ](https://docs.clawd.bot/install/updating ) (and run `clawdbot doctor` ).
2026-01-05 20:10:56 +01:00
2026-01-08 09:59:10 +01:00
## From source (development)
Prefer `pnpm` for builds from source. Bun is optional for running TypeScript directly.
```bash
git clone https://github.com/clawdbot/clawdbot.git
cd clawdbot
pnpm install
2026-01-09 07:02:42 +00:00
pnpm ui:build # auto-installs UI deps on first run
2026-01-08 09:59:10 +01:00
pnpm build
pnpm clawdbot onboard --install-daemon
# Dev loop (auto-reload on TS changes)
pnpm gateway:watch
```
Note: `pnpm clawdbot ...` runs TypeScript directly (via `tsx` ). `pnpm build` produces `dist/` for running via Node / the packaged `clawdbot` binary.
2026-01-05 19:43:54 +01:00
2026-01-06 18:07:11 +01:00
## Security defaults (DM access)
Clawdbot connects to real messaging surfaces. Treat inbound DMs as **untrusted input** .
2026-01-12 08:00:38 +00:00
Full security guide: [Security ](https://docs.clawd.bot/gateway/security )
2026-01-06 18:41:00 +01:00
2026-01-13 02:42:09 +00:00
Default behavior on Telegram/WhatsApp/Signal/iMessage/Microsoft Teams/Discord/Slack:
2026-01-13 06:16:43 +00:00
- **DM pairing** (`dmPolicy="pairing"` / `channels.discord.dm.policy="pairing"` / `channels.slack.dm.policy="pairing"` ): unknown senders receive a short pairing code and the bot does not process their message.
- Approve with: `clawdbot pairing approve <channel> <code>` (then the sender is added to a local allowlist store).
- Public inbound DMs require an explicit opt-in: set `dmPolicy="open"` and include `"*"` in the channel allowlist (`allowFrom` / `channels.discord.dm.allowFrom` / `channels.slack.dm.allowFrom` ).
2026-01-06 18:07:11 +01:00
Run `clawdbot doctor` to surface risky/misconfigured DM policies.
2026-01-04 16:36:40 +01:00
## Highlights
2026-01-13 06:16:43 +00:00
- **[Local-first Gateway ](https://docs.clawd.bot/gateway )** — single control plane for sessions, channels, tools, and events.
- **[Multi-channel inbox ](https://docs.clawd.bot/channels )** — WhatsApp, Telegram, Slack, Discord, Signal, iMessage, Microsoft Teams, WebChat, macOS, iOS/Android.
- **[Multi-agent routing ](https://docs.clawd.bot/gateway/configuration )** — route inbound channels/accounts/peers to isolated agents (workspaces + per-agent sessions).
2026-01-12 08:00:38 +00:00
- **[Voice Wake ](https://docs.clawd.bot/nodes/voicewake ) + [Talk Mode ](https://docs.clawd.bot/nodes/talk )** — always-on speech for macOS/iOS/Android with ElevenLabs.
- **[Live Canvas ](https://docs.clawd.bot/platforms/mac/canvas )** — agent-driven visual workspace with [A2UI ](https://docs.clawd.bot/platforms/mac/canvas#canvas-a2ui ).
2026-01-06 18:41:00 +01:00
- **[First-class tools ](https://docs.clawd.bot/tools )** — browser, canvas, nodes, cron, sessions, and Discord/Slack actions.
2026-01-12 08:00:38 +00:00
- **[Companion apps ](https://docs.clawd.bot/platforms/macos )** — macOS menu bar app + iOS/Android [nodes ](https://docs.clawd.bot/nodes ).
- **[Onboarding ](https://docs.clawd.bot/start/wizard ) + [skills ](https://docs.clawd.bot/tools/skills )** — wizard-driven setup with bundled/managed/workspace skills.
2026-01-04 16:36:40 +01:00
2026-01-13 02:34:54 +00:00
## Star History
[](https://www.star-history.com/#clawdbot/clawdbot & type=date& legend=top-left)
2026-01-04 16:36:40 +01:00
## Everything we built so far
### Core platform
2026-01-12 08:00:38 +00:00
- [Gateway WS control plane ](https://docs.clawd.bot/gateway ) with sessions, presence, config, cron, webhooks, [Control UI ](https://docs.clawd.bot/web ), and [Canvas host ](https://docs.clawd.bot/platforms/mac/canvas#canvas-a2ui ).
- [CLI surface ](https://docs.clawd.bot/tools/agent-send ): gateway, agent, send, [wizard ](https://docs.clawd.bot/start/wizard ), and [doctor ](https://docs.clawd.bot/gateway/doctor ).
- [Pi agent runtime ](https://docs.clawd.bot/concepts/agent ) in RPC mode with tool streaming and block streaming.
- [Session model ](https://docs.clawd.bot/concepts/session ): `main` for direct chats, group isolation, activation modes, queue modes, reply-back. Group rules: [Groups ](https://docs.clawd.bot/concepts/groups ).
- [Media pipeline ](https://docs.clawd.bot/nodes/images ): images/audio/video, transcription hooks, size caps, temp file lifecycle. Audio details: [Audio ](https://docs.clawd.bot/nodes/audio ).
2026-01-04 16:36:40 +01:00
2026-01-13 06:16:43 +00:00
### Channels
- [Channels ](https://docs.clawd.bot/channels ): [WhatsApp ](https://docs.clawd.bot/channels/whatsapp ) (Baileys), [Telegram ](https://docs.clawd.bot/channels/telegram ) (grammY), [Slack ](https://docs.clawd.bot/channels/slack ) (Bolt), [Discord ](https://docs.clawd.bot/channels/discord ) (discord.js), [Signal ](https://docs.clawd.bot/channels/signal ) (signal-cli), [iMessage ](https://docs.clawd.bot/channels/imessage ) (imsg), [Microsoft Teams ](https://docs.clawd.bot/channels/msteams ) (Bot Framework), [WebChat ](https://docs.clawd.bot/web/webchat ).
- [Group routing ](https://docs.clawd.bot/concepts/group-messages ): mention gating, reply tags, per-channel chunking and routing. Channel rules: [Channels ](https://docs.clawd.bot/channels ).
2026-01-04 16:36:40 +01:00
### Apps + nodes
2026-01-12 08:00:38 +00:00
- [macOS app ](https://docs.clawd.bot/platforms/macos ): menu bar control plane, [Voice Wake ](https://docs.clawd.bot/nodes/voicewake )/PTT, [Talk Mode ](https://docs.clawd.bot/nodes/talk ) overlay, [WebChat ](https://docs.clawd.bot/web/webchat ), debug tools, [remote gateway ](https://docs.clawd.bot/gateway/remote ) control.
- [iOS node ](https://docs.clawd.bot/platforms/ios ): [Canvas ](https://docs.clawd.bot/platforms/mac/canvas ), [Voice Wake ](https://docs.clawd.bot/nodes/voicewake ), [Talk Mode ](https://docs.clawd.bot/nodes/talk ), camera, screen recording, Bonjour pairing.
- [Android node ](https://docs.clawd.bot/platforms/android ): [Canvas ](https://docs.clawd.bot/platforms/mac/canvas ), [Talk Mode ](https://docs.clawd.bot/nodes/talk ), camera, screen recording, optional SMS.
2026-01-06 18:41:00 +01:00
- [macOS node mode ](https://docs.clawd.bot/nodes ): system.run/notify + canvas/camera exposure.
2026-01-04 16:36:40 +01:00
### Tools + automation
2026-01-12 08:00:38 +00:00
- [Browser control ](https://docs.clawd.bot/tools/browser ): dedicated clawd Chrome/Chromium, snapshots, actions, uploads, profiles.
- [Canvas ](https://docs.clawd.bot/platforms/mac/canvas ): [A2UI ](https://docs.clawd.bot/platforms/mac/canvas#canvas-a2ui ) push/reset, eval, snapshot.
- [Nodes ](https://docs.clawd.bot/nodes ): camera snap/clip, screen record, [location.get ](https://docs.clawd.bot/nodes/location-command ), notifications.
- [Cron + wakeups ](https://docs.clawd.bot/automation/cron-jobs ); [webhooks ](https://docs.clawd.bot/automation/webhook ); [Gmail Pub/Sub ](https://docs.clawd.bot/automation/gmail-pubsub ).
- [Skills platform ](https://docs.clawd.bot/tools/skills ): bundled, managed, and workspace skills with install gating + UI.
2026-01-04 16:36:40 +01:00
2026-01-08 06:25:04 +01:00
### Runtime + safety
2026-01-13 06:16:43 +00:00
- [Channel routing ](https://docs.clawd.bot/concepts/channel-routing ), [retry policy ](https://docs.clawd.bot/concepts/retry ), and [streaming/chunking ](https://docs.clawd.bot/concepts/streaming ).
2026-01-12 08:00:38 +00:00
- [Presence ](https://docs.clawd.bot/concepts/presence ), [typing indicators ](https://docs.clawd.bot/concepts/typing-indicators ), and [usage tracking ](https://docs.clawd.bot/concepts/usage-tracking ).
- [Models ](https://docs.clawd.bot/concepts/models ), [model failover ](https://docs.clawd.bot/concepts/model-failover ), and [session pruning ](https://docs.clawd.bot/concepts/session-pruning ).
2026-01-13 06:16:43 +00:00
- [Security ](https://docs.clawd.bot/gateway/security ) and [troubleshooting ](https://docs.clawd.bot/channels/troubleshooting ).
2026-01-08 06:25:04 +01:00
2026-01-04 16:36:40 +01:00
### Ops + packaging
2026-01-12 08:00:38 +00:00
- [Control UI ](https://docs.clawd.bot/web ) + [WebChat ](https://docs.clawd.bot/web/webchat ) served directly from the Gateway.
- [Tailscale Serve/Funnel ](https://docs.clawd.bot/gateway/tailscale ) or [SSH tunnels ](https://docs.clawd.bot/gateway/remote ) with token/password auth.
- [Nix mode ](https://docs.clawd.bot/install/nix ) for declarative config; [Docker ](https://docs.clawd.bot/install/docker )-based installs.
- [Doctor ](https://docs.clawd.bot/gateway/doctor ) migrations, [logging ](https://docs.clawd.bot/logging ).
2026-01-04 16:36:40 +01:00
## How it works (short)
2025-12-03 15:45:32 +00:00
```
2026-01-13 02:42:09 +00:00
WhatsApp / Telegram / Slack / Discord / Signal / iMessage / Microsoft Teams / WebChat
2026-01-05 21:02:02 +01:00
│
▼
2025-12-19 18:41:17 +01:00
┌───────────────────────────────┐
2026-01-11 02:24:03 +01:00
│ Gateway │
│ (control plane) │
│ ws://127.0.0.1:18789 │
2025-12-19 18:41:17 +01:00
└──────────────┬────────────────┘
│
├─ Pi agent (RPC)
2026-01-04 14:32:47 +00:00
├─ CLI (clawdbot …)
2026-01-05 21:02:02 +01:00
├─ WebChat UI
├─ macOS app
2026-01-11 02:24:03 +01:00
└─ iOS / Android nodes
2025-12-03 15:45:32 +00:00
```
2025-11-25 04:44:10 +01:00
2026-01-05 21:02:02 +01:00
## Key subsystems
2026-01-12 08:00:38 +00:00
- **[Gateway WebSocket network ](https://docs.clawd.bot/concepts/architecture )** — single WS control plane for clients, tools, and events (plus ops: [Gateway runbook ](https://docs.clawd.bot/gateway )).
- **[Tailscale exposure ](https://docs.clawd.bot/gateway/tailscale )** — Serve/Funnel for the Gateway dashboard + WS (remote access: [Remote ](https://docs.clawd.bot/gateway/remote )).
- **[Browser control ](https://docs.clawd.bot/tools/browser )** — clawd‑ managed Chrome/Chromium with CDP control.
- **[Canvas + A2UI ](https://docs.clawd.bot/platforms/mac/canvas )** — agent‑ driven visual workspace (A2UI host: [Canvas/A2UI ](https://docs.clawd.bot/platforms/mac/canvas#canvas-a2ui )).
- **[Voice Wake ](https://docs.clawd.bot/nodes/voicewake ) + [Talk Mode ](https://docs.clawd.bot/nodes/talk )** — always‑ on speech and continuous conversation.
2026-01-06 18:41:00 +01:00
- **[Nodes ](https://docs.clawd.bot/nodes )** — Canvas, camera snap/clip, screen record, `location.get` , notifications, plus macOS‑ only `system.run` /`system.notify` .
2026-01-05 21:02:02 +01:00
2026-01-05 22:15:26 +01:00
## Tailscale access (Gateway dashboard)
Clawdbot can auto-configure Tailscale **Serve** (tailnet-only) or **Funnel** (public) while the Gateway stays bound to loopback. Configure `gateway.tailscale.mode` :
- `off` : no Tailscale automation (default).
- `serve` : tailnet-only HTTPS via `tailscale serve` (uses Tailscale identity headers by default).
- `funnel` : public HTTPS via `tailscale funnel` (requires shared password auth).
Notes:
- `gateway.bind` must stay `loopback` when Serve/Funnel is enabled (Clawdbot enforces this).
- Serve can be forced to require a password by setting `gateway.auth.mode: "password"` or `gateway.auth.allowTailscale: false` .
- Funnel refuses to start unless `gateway.auth.mode: "password"` is set.
- Optional: `gateway.tailscale.resetOnExit` to undo Serve/Funnel on shutdown.
2026-01-12 08:00:38 +00:00
Details: [Tailscale guide ](https://docs.clawd.bot/gateway/tailscale ) · [Web surfaces ](https://docs.clawd.bot/web )
2026-01-05 22:15:26 +01:00
## Remote Gateway (Linux is great)
It’ s perfectly fine to run the Gateway on a small Linux instance. Clients (macOS app, CLI, WebChat) can connect over **Tailscale Serve/Funnel** or **SSH tunnels** , and you can still pair device nodes (macOS/iOS/Android) to execute device‑ local actions when needed.
2026-01-13 06:51:20 +00:00
- **Gateway host** runs the exec tool and channel connections by default.
2026-01-05 22:15:26 +01:00
- **Device nodes** run device‑ local actions (`system.run` , camera, screen recording, notifications) via `node.invoke` .
2026-01-12 02:49:55 +00:00
In short: exec runs where the Gateway lives; device actions run where the device lives.
2026-01-05 22:15:26 +01:00
2026-01-12 08:00:38 +00:00
Details: [Remote access ](https://docs.clawd.bot/gateway/remote ) · [Nodes ](https://docs.clawd.bot/nodes ) · [Security ](https://docs.clawd.bot/gateway/security )
2026-01-05 22:15:26 +01:00
## macOS permissions via the Gateway protocol
The macOS app can run in **node mode** and advertises its capabilities + permission map over the Gateway WebSocket (`node.list` / `node.describe` ). Clients can then execute local actions via `node.invoke` :
- `system.run` runs a local command and returns stdout/stderr/exit code; set `needsScreenRecording: true` to require screen-recording permission (otherwise you’ ll get `PERMISSION_MISSING` ).
- `system.notify` posts a user notification and fails if notifications are denied.
- `canvas.*` , `camera.*` , `screen.record` , and `location.get` are also routed via `node.invoke` and follow TCC permission status.
Elevated bash (host permissions) is separate from macOS TCC:
- Use `/elevated on|off` to toggle per‑ session elevated access when enabled + allowlisted.
- Gateway persists the per‑ session toggle via `sessions.patch` (WS method) alongside `thinkingLevel` , `verboseLevel` , `model` , `sendPolicy` , and `groupActivation` .
2026-01-12 08:00:38 +00:00
Details: [Nodes ](https://docs.clawd.bot/nodes ) · [macOS app ](https://docs.clawd.bot/platforms/macos ) · [Gateway protocol ](https://docs.clawd.bot/concepts/architecture )
2026-01-05 22:15:26 +01:00
2026-01-05 22:23:14 +01:00
## Agent to Agent (sessions_* tools)
2026-01-05 22:32:02 +01:00
- Use these to coordinate work across sessions without jumping between chat surfaces.
2026-01-05 22:23:14 +01:00
- `sessions_list` — discover active sessions (agents) and their metadata.
- `sessions_history` — fetch transcript logs for a session.
- `sessions_send` — message another session; optional reply‑ back ping‑ pong + announce step (`REPLY_SKIP` , `ANNOUNCE_SKIP` ).
2026-01-12 08:00:38 +00:00
Details: [Session tools ](https://docs.clawd.bot/concepts/session-tool )
2026-01-05 22:23:14 +01:00
2026-01-05 02:34:02 +01:00
## Skills registry (ClawdHub)
ClawdHub is a minimal skill registry. With ClawdHub enabled, the agent can search for skills automatically and pull in new ones as needed.
2026-01-08 03:55:46 +01:00
[ClawdHub ](https://ClawdHub.com )
2026-01-05 02:34:02 +01:00
2025-12-22 20:36:34 +01:00
## Chat commands
2026-01-13 02:42:09 +00:00
Send these in WhatsApp/Telegram/Slack/Microsoft Teams/WebChat (group commands are owner-only):
2025-12-22 20:36:34 +01:00
2026-01-09 02:21:17 +00:00
- `/status` — compact session status (model + tokens, cost when available)
2025-12-22 20:36:34 +01:00
- `/new` or `/reset` — reset the session
2026-01-06 02:06:06 +01:00
- `/compact` — compact session context (summary)
2026-01-07 17:17:38 -08:00
- `/think <level>` — off|minimal|low|medium|high|xhigh (GPT-5.2 + Codex models only)
2025-12-22 20:36:34 +01:00
- `/verbose on|off`
2026-01-18 05:35:22 +00:00
- `/usage off|tokens|full` — per-response usage footer
2025-12-22 20:36:34 +01:00
- `/restart` — restart the gateway (owner-only in groups)
- `/activation mention|always` — group activation toggle (groups only)
2026-01-11 21:29:38 +05:30
## Apps (optional)
2025-12-13 23:50:23 +00:00
2026-01-05 20:10:56 +01:00
The Gateway alone delivers a great experience. All apps are optional and add extra features.
2025-12-06 05:24:27 +01:00
2026-01-05 21:02:02 +01:00
If you plan to build/run companion apps, initialize submodules first:
```bash
git submodule update --init --recursive
2026-01-05 22:24:31 +01:00
./scripts/restart-mac.sh
2026-01-05 21:02:02 +01:00
```
2026-01-05 20:10:56 +01:00
### macOS (Clawdbot.app) (optional)
2025-12-12 16:42:05 +00:00
2025-12-19 18:41:17 +01:00
- Menu bar control for the Gateway and health.
- Voice Wake + push-to-talk overlay.
- WebChat + debug tools.
- Remote gateway control over SSH.
2025-12-12 16:42:05 +00:00
2026-01-05 22:24:31 +01:00
Note: signed builds required for macOS permissions to stick across rebuilds (see `docs/mac/permissions.md` ).
2025-12-12 16:42:05 +00:00
2026-01-05 20:10:56 +01:00
### iOS node (optional)
2025-12-12 16:42:05 +00:00
2025-12-19 18:41:17 +01:00
- Pairs as a node via the Bridge.
- Voice trigger forwarding + Canvas surface.
2026-01-04 14:32:47 +00:00
- Controlled via `clawdbot nodes …` .
2025-12-06 05:24:27 +01:00
2026-01-12 08:00:38 +00:00
Runbook: [iOS connect ](https://docs.clawd.bot/platforms/ios ).
2025-12-13 23:50:23 +00:00
2026-01-05 20:10:56 +01:00
### Android node (optional)
2025-12-13 23:50:23 +00:00
2025-12-19 18:41:17 +01:00
- Pairs via the same Bridge + pairing flow as iOS.
- Exposes Canvas, Camera, and Screen capture commands.
2026-01-12 08:00:38 +00:00
- Runbook: [Android connect ](https://docs.clawd.bot/platforms/android ).
2025-12-13 23:50:23 +00:00
2025-12-19 18:41:17 +01:00
## Agent workspace + skills
2026-01-09 12:44:23 +00:00
- Workspace root: `~/clawd` (configurable via `agents.defaults.workspace` ).
2025-12-19 18:41:17 +01:00
- Injected prompt files: `AGENTS.md` , `SOUL.md` , `TOOLS.md` .
- Skills: `~/clawd/skills/<skill>/SKILL.md` .
2025-12-13 23:50:23 +00:00
2025-12-03 15:45:32 +00:00
## Configuration
2026-01-05 20:10:56 +01:00
Minimal `~/.clawdbot/clawdbot.json` (model + defaults):
2026-01-05 01:03:01 +01:00
```json5
{
2026-01-05 20:10:56 +01:00
agent: {
model: "anthropic/claude-opus-4-5"
2026-01-05 01:03:01 +01:00
}
}
```
2026-01-12 08:00:38 +00:00
[Full configuration reference (all keys + examples). ](https://docs.clawd.bot/gateway/configuration )
2026-01-05 00:59:25 +01:00
2026-01-05 21:02:02 +01:00
## Security model (important)
2025-12-19 19:03:17 +01:00
2026-01-05 21:02:02 +01:00
- **Default:** tools run on the host for the **main** session, so the agent has full access when it’ s just you.
2026-01-09 12:44:23 +00:00
- **Group/channel safety:** set `agents.defaults.sandbox.mode: "non-main"` to run **non‑ main sessions** (groups/channels) inside per‑ session Docker sandboxes; bash then runs in Docker for those sessions.
2026-01-06 18:41:00 +01:00
- **Sandbox defaults:** allowlist `bash` , `process` , `read` , `write` , `edit` , `sessions_list` , `sessions_history` , `sessions_send` , `sessions_spawn` ; denylist `browser` , `canvas` , `nodes` , `cron` , `discord` , `gateway` .
2026-01-05 21:02:02 +01:00
2026-01-12 08:00:38 +00:00
Details: [Security guide ](https://docs.clawd.bot/gateway/security ) · [Docker + sandboxing ](https://docs.clawd.bot/install/docker ) · [Sandbox config ](https://docs.clawd.bot/gateway/configuration )
2026-01-05 21:02:02 +01:00
2026-01-13 06:16:43 +00:00
### [WhatsApp](https://docs.clawd.bot/channels/whatsapp)
2026-01-05 20:34:26 +01:00
2026-01-13 06:51:20 +00:00
- Link the device: `pnpm clawdbot channels login` (stores creds in `~/.clawdbot/credentials` ).
- Allowlist who can talk to the assistant via `channels.whatsapp.allowFrom` .
- If `channels.whatsapp.groups` is set, it becomes a group allowlist; include `"*"` to allow all.
2025-12-19 19:03:17 +01:00
2026-01-13 06:16:43 +00:00
### [Telegram](https://docs.clawd.bot/channels/telegram)
2026-01-05 20:34:26 +01:00
2026-01-13 06:51:20 +00:00
- Set `TELEGRAM_BOT_TOKEN` or `channels.telegram.botToken` (env wins).
- Optional: set `channels.telegram.groups` (with `channels.telegram.groups."*".requireMention` ); when set, it is a group allowlist (include `"*"` to allow all). Also `channels.telegram.allowFrom` or `channels.telegram.webhookUrl` as needed.
2025-12-19 19:03:17 +01:00
```json5
{
2026-01-13 06:51:20 +00:00
channels: {
telegram: {
botToken: "123456:ABCDEF"
}
2025-12-19 19:03:17 +01:00
}
}
```
2026-01-13 06:16:43 +00:00
### [Slack](https://docs.clawd.bot/channels/slack)
2026-01-05 20:34:26 +01:00
2026-01-13 06:51:20 +00:00
- Set `SLACK_BOT_TOKEN` + `SLACK_APP_TOKEN` (or `channels.slack.botToken` + `channels.slack.appToken` ).
2026-01-05 20:34:26 +01:00
2026-01-13 06:16:43 +00:00
### [Discord](https://docs.clawd.bot/channels/discord)
2026-01-05 20:34:26 +01:00
2026-01-13 06:51:20 +00:00
- Set `DISCORD_BOT_TOKEN` or `channels.discord.token` (env wins).
- Optional: set `commands.native` , `commands.text` , or `commands.useAccessGroups` , plus `channels.discord.dm.allowFrom` , `channels.discord.guilds` , or `channels.discord.mediaMaxMb` as needed.
2025-12-15 10:11:18 -06:00
```json5
{
2026-01-13 06:51:20 +00:00
channels: {
discord: {
token: "1234abcd"
}
2025-12-15 10:11:18 -06:00
}
}
```
2026-01-13 06:16:43 +00:00
### [Signal](https://docs.clawd.bot/channels/signal)
2026-01-05 20:34:26 +01:00
2026-01-13 06:51:20 +00:00
- Requires `signal-cli` and a `channels.signal` config section.
2026-01-05 20:34:26 +01:00
2026-01-13 06:16:43 +00:00
### [iMessage](https://docs.clawd.bot/channels/imessage)
2026-01-05 20:34:26 +01:00
- macOS only; Messages must be signed in.
2026-01-13 06:51:20 +00:00
- If `channels.imessage.groups` is set, it becomes a group allowlist; include `"*"` to allow all.
2026-01-05 20:34:26 +01:00
2026-01-13 06:51:20 +00:00
### [Microsoft Teams](https://docs.clawd.bot/channels/msteams)
2026-01-13 02:42:09 +00:00
- Configure a Teams app + Bot Framework, then add a `msteams` config section.
- Allowlist who can talk via `msteams.allowFrom` ; group access via `msteams.groupAllowFrom` or `msteams.groupPolicy: "open"` .
2026-01-12 08:00:38 +00:00
### [WebChat](https://docs.clawd.bot/web/webchat)
2026-01-05 20:34:26 +01:00
- Uses the Gateway WebSocket; no separate WebChat port/config.
2025-12-19 18:41:17 +01:00
Browser control (optional):
2025-12-13 15:15:09 +00:00
```json5
{
browser: {
enabled: true,
2025-12-13 15:29:39 +00:00
controlUrl: "http://127.0.0.1:18791",
2025-12-13 15:15:09 +00:00
color: "#FF4500 "
}
}
```
2025-12-19 18:41:17 +01:00
## Docs
2025-12-09 20:28:10 +00:00
2026-01-05 22:32:02 +01:00
Use these when you’ re past the onboarding flow and want the deeper reference.
2026-01-06 18:41:00 +01:00
- [Start with the docs index for navigation and “what’ s where.” ](https://docs.clawd.bot )
2026-01-12 08:00:38 +00:00
- [Read the architecture overview for the gateway + protocol model. ](https://docs.clawd.bot/concepts/architecture )
- [Use the full configuration reference when you need every key and example. ](https://docs.clawd.bot/gateway/configuration )
2026-01-06 18:41:00 +01:00
- [Run the Gateway by the book with the operational runbook. ](https://docs.clawd.bot/gateway )
- [Learn how the Control UI/Web surfaces work and how to expose them safely. ](https://docs.clawd.bot/web )
2026-01-12 08:00:38 +00:00
- [Understand remote access over SSH tunnels or tailnets. ](https://docs.clawd.bot/gateway/remote )
- [Follow the onboarding wizard flow for a guided setup. ](https://docs.clawd.bot/start/wizard )
- [Wire external triggers via the webhook surface. ](https://docs.clawd.bot/automation/webhook )
- [Set up Gmail Pub/Sub triggers. ](https://docs.clawd.bot/automation/gmail-pubsub )
- [Learn the macOS menu bar companion details. ](https://docs.clawd.bot/platforms/mac/menu-bar )
- [Platform guides: Windows (WSL2) ](https://docs.clawd.bot/platforms/windows ), [Linux ](https://docs.clawd.bot/platforms/linux ), [macOS ](https://docs.clawd.bot/platforms/macos ), [iOS ](https://docs.clawd.bot/platforms/ios ), [Android ](https://docs.clawd.bot/platforms/android )
2026-01-13 06:16:43 +00:00
- [Debug common failures with the troubleshooting guide. ](https://docs.clawd.bot/channels/troubleshooting )
2026-01-12 08:00:38 +00:00
- [Review security guidance before exposing anything. ](https://docs.clawd.bot/gateway/security )
2025-12-24 22:59:09 +00:00
2026-01-05 22:30:47 +01:00
## Advanced docs (discovery + control)
2026-01-12 08:00:38 +00:00
- [Discovery + transports ](https://docs.clawd.bot/gateway/discovery )
- [Bonjour/mDNS ](https://docs.clawd.bot/gateway/bonjour )
2026-01-06 18:41:00 +01:00
- [Gateway pairing ](https://docs.clawd.bot/gateway/pairing )
2026-01-12 08:00:38 +00:00
- [Remote gateway README ](https://docs.clawd.bot/gateway/remote-gateway-readme )
- [Control UI ](https://docs.clawd.bot/web/control-ui )
- [Dashboard ](https://docs.clawd.bot/web/dashboard )
2026-01-05 22:30:47 +01:00
## Operations & troubleshooting
2026-01-12 08:00:38 +00:00
- [Health checks ](https://docs.clawd.bot/gateway/health )
- [Gateway lock ](https://docs.clawd.bot/gateway/gateway-lock )
- [Background process ](https://docs.clawd.bot/gateway/background-process )
- [Browser troubleshooting (Linux) ](https://docs.clawd.bot/tools/browser-linux-troubleshooting )
2026-01-06 18:41:00 +01:00
- [Logging ](https://docs.clawd.bot/logging )
2026-01-05 22:30:47 +01:00
## Deep dives
2026-01-12 08:00:38 +00:00
- [Agent loop ](https://docs.clawd.bot/concepts/agent-loop )
- [Presence ](https://docs.clawd.bot/concepts/presence )
- [TypeBox schemas ](https://docs.clawd.bot/concepts/typebox )
- [RPC adapters ](https://docs.clawd.bot/reference/rpc )
- [Queue ](https://docs.clawd.bot/concepts/queue )
2026-01-05 22:30:47 +01:00
## Workspace & skills
2026-01-12 08:00:38 +00:00
- [Skills config ](https://docs.clawd.bot/tools/skills-config )
- [Default AGENTS ](https://docs.clawd.bot/reference/AGENTS.default )
- [Templates: AGENTS ](https://docs.clawd.bot/reference/templates/AGENTS )
- [Templates: BOOTSTRAP ](https://docs.clawd.bot/reference/templates/BOOTSTRAP )
- [Templates: IDENTITY ](https://docs.clawd.bot/reference/templates/IDENTITY )
- [Templates: SOUL ](https://docs.clawd.bot/reference/templates/SOUL )
- [Templates: TOOLS ](https://docs.clawd.bot/reference/templates/TOOLS )
- [Templates: USER ](https://docs.clawd.bot/reference/templates/USER )
2026-01-05 22:30:47 +01:00
## Platform internals
2026-01-12 08:00:38 +00:00
- [macOS dev setup ](https://docs.clawd.bot/platforms/mac/dev-setup )
- [macOS menu bar ](https://docs.clawd.bot/platforms/mac/menu-bar )
- [macOS voice wake ](https://docs.clawd.bot/platforms/mac/voicewake )
- [iOS node ](https://docs.clawd.bot/platforms/ios )
- [Android node ](https://docs.clawd.bot/platforms/android )
- [Windows (WSL2) ](https://docs.clawd.bot/platforms/windows )
- [Linux app ](https://docs.clawd.bot/platforms/linux )
2026-01-05 22:30:47 +01:00
2025-12-24 22:59:09 +00:00
## Email hooks (Gmail)
2026-01-12 08:00:38 +00:00
- [docs.clawd.bot/gmail-pubsub ](https://docs.clawd.bot/automation/gmail-pubsub )
2025-12-09 20:28:10 +00:00
2025-12-19 18:41:17 +01:00
## Clawd
2025-12-03 15:45:32 +00:00
2026-01-05 20:34:26 +01:00
Clawdbot was built for **Clawd** , a space lobster AI assistant. 🦞
by Peter Steinberger and the community.
2025-12-03 15:45:32 +00:00
2026-01-08 06:25:04 +01:00
- [clawd.me ](https://clawd.me )
- [soul.md ](https://soul.md )
- [steipete.me ](https://steipete.me )
2026-01-05 20:34:26 +01:00
## Community
2026-01-05 20:38:20 +01:00
See [CONTRIBUTING.md ](CONTRIBUTING.md ) for guidelines, maintainers, and how to submit PRs.
AI/vibe-coded PRs welcome! 🤖
2026-01-09 06:52:41 +01:00
Special thanks to @andrewting19 for the Anthropic OAuth tool-name fix.
2026-01-15 06:14:55 +00:00
Core contributors:
- @cpojer — Telegram onboarding UX + docs
2026-01-05 21:47:56 +01:00
Thanks to all clawtributors:
2026-01-05 20:34:26 +01:00
< p align = "left" >
2026-01-16 20:20:16 +00:00
< a href = "https://github.com/steipete" > < img src = "https://avatars.githubusercontent.com/u/58493?v=4&s=48" width = "48" height = "48" alt = "steipete" title = "steipete" / > < / a > < a href = "https://github.com/bohdanpodvirnyi" > < img src = "https://avatars.githubusercontent.com/u/31819391?v=4&s=48" width = "48" height = "48" alt = "bohdanpodvirnyi" title = "bohdanpodvirnyi" / > < / a > < a href = "https://github.com/joaohlisboa" > < img src = "https://avatars.githubusercontent.com/u/8200873?v=4&s=48" width = "48" height = "48" alt = "joaohlisboa" title = "joaohlisboa" / > < / a > < a href = "https://github.com/mneves75" > < img src = "https://avatars.githubusercontent.com/u/2423436?v=4&s=48" width = "48" height = "48" alt = "mneves75" title = "mneves75" / > < / a > < a href = "https://github.com/MatthieuBizien" > < img src = "https://avatars.githubusercontent.com/u/173090?v=4&s=48" width = "48" height = "48" alt = "MatthieuBizien" title = "MatthieuBizien" / > < / a > < a href = "https://github.com/rahthakor" > < img src = "https://avatars.githubusercontent.com/u/8470553?v=4&s=48" width = "48" height = "48" alt = "rahthakor" title = "rahthakor" / > < / a > < a href = "https://github.com/vrknetha" > < img src = "https://avatars.githubusercontent.com/u/20596261?v=4&s=48" width = "48" height = "48" alt = "vrknetha" title = "vrknetha" / > < / a > < a href = "https://github.com/joshp123" > < img src = "https://avatars.githubusercontent.com/u/1497361?v=4&s=48" width = "48" height = "48" alt = "joshp123" title = "joshp123" / > < / a > < a href = "https://github.com/mukhtharcm" > < img src = "https://avatars.githubusercontent.com/u/56378562?v=4&s=48" width = "48" height = "48" alt = "mukhtharcm" title = "mukhtharcm" / > < / a > < a href = "https://github.com/maxsumrall" > < img src = "https://avatars.githubusercontent.com/u/628843?v=4&s=48" width = "48" height = "48" alt = "maxsumrall" title = "maxsumrall" / > < / a >
< a href = "https://github.com/xadenryan" > < img src = "https://avatars.githubusercontent.com/u/165437834?v=4&s=48" width = "48" height = "48" alt = "xadenryan" title = "xadenryan" / > < / a > < a href = "https://github.com/tobiasbischoff" > < img src = "https://avatars.githubusercontent.com/u/711564?v=4&s=48" width = "48" height = "48" alt = "Tobias Bischoff" title = "Tobias Bischoff" / > < / a > < a href = "https://github.com/juanpablodlc" > < img src = "https://avatars.githubusercontent.com/u/92012363?v=4&s=48" width = "48" height = "48" alt = "juanpablodlc" title = "juanpablodlc" / > < / a > < a href = "https://github.com/hsrvc" > < img src = "https://avatars.githubusercontent.com/u/129702169?v=4&s=48" width = "48" height = "48" alt = "hsrvc" title = "hsrvc" / > < / a > < a href = "https://github.com/magimetal" > < img src = "https://avatars.githubusercontent.com/u/36491250?v=4&s=48" width = "48" height = "48" alt = "magimetal" title = "magimetal" / > < / a > < a href = "https://github.com/meaningfool" > < img src = "https://avatars.githubusercontent.com/u/2862331?v=4&s=48" width = "48" height = "48" alt = "meaningfool" title = "meaningfool" / > < / a > < a href = "https://github.com/NicholasSpisak" > < img src = "https://avatars.githubusercontent.com/u/129075147?v=4&s=48" width = "48" height = "48" alt = "NicholasSpisak" title = "NicholasSpisak" / > < / a > < a href = "https://github.com/AbhisekBasu1" > < img src = "https://avatars.githubusercontent.com/u/40645221?v=4&s=48" width = "48" height = "48" alt = "abhisekbasu1" title = "abhisekbasu1" / > < / a > < a href = "https://github.com/claude" > < img src = "https://avatars.githubusercontent.com/u/81847?v=4&s=48" width = "48" height = "48" alt = "claude" title = "claude" / > < / a > < a href = "https://github.com/jamesgroat" > < img src = "https://avatars.githubusercontent.com/u/2634024?v=4&s=48" width = "48" height = "48" alt = "jamesgroat" title = "jamesgroat" / > < / a >
< a href = "https://github.com/Hyaxia" > < img src = "https://avatars.githubusercontent.com/u/36747317?v=4&s=48" width = "48" height = "48" alt = "Hyaxia" title = "Hyaxia" / > < / a > < a href = "https://github.com/dantelex" > < img src = "https://avatars.githubusercontent.com/u/631543?v=4&s=48" width = "48" height = "48" alt = "dantelex" title = "dantelex" / > < / a > < a href = "https://github.com/daveonkels" > < img src = "https://avatars.githubusercontent.com/u/533642?v=4&s=48" width = "48" height = "48" alt = "daveonkels" title = "daveonkels" / > < / a > < a href = "https://github.com/radek-paclt" > < img src = "https://avatars.githubusercontent.com/u/50451445?v=4&s=48" width = "48" height = "48" alt = "radek-paclt" title = "radek-paclt" / > < / a > < a href = "https://github.com/mteam88" > < img src = "https://avatars.githubusercontent.com/u/84196639?v=4&s=48" width = "48" height = "48" alt = "mteam88" title = "mteam88" / > < / a > < a href = "https://github.com/omniwired" > < img src = "https://avatars.githubusercontent.com/u/322761?v=4&s=48" width = "48" height = "48" alt = "Eng. Juan Combetto" title = "Eng. Juan Combetto" / > < / a > < a href = "https://github.com/dbhurley" > < img src = "https://avatars.githubusercontent.com/u/5251425?v=4&s=48" width = "48" height = "48" alt = "dbhurley" title = "dbhurley" / > < / a > < a href = "https://github.com/mbelinky" > < img src = "https://avatars.githubusercontent.com/u/132747814?v=4&s=48" width = "48" height = "48" alt = "Mariano Belinky" title = "Mariano Belinky" / > < / a > < a href = "https://github.com/julianengel" > < img src = "https://avatars.githubusercontent.com/u/10634231?v=4&s=48" width = "48" height = "48" alt = "julianengel" title = "julianengel" / > < / a > < a href = "https://github.com/benithors" > < img src = "https://avatars.githubusercontent.com/u/20652882?v=4&s=48" width = "48" height = "48" alt = "benithors" title = "benithors" / > < / a >
2026-01-17 01:48:02 +00:00
< a href = "https://github.com/timolins" > < img src = "https://avatars.githubusercontent.com/u/1440854?v=4&s=48" width = "48" height = "48" alt = "timolins" title = "timolins" / > < / a > < a href = "https://github.com/Nachx639" > < img src = "https://avatars.githubusercontent.com/u/71144023?v=4&s=48" width = "48" height = "48" alt = "nachx639" title = "nachx639" / > < / a > < a href = "https://github.com/sreekaransrinath" > < img src = "https://avatars.githubusercontent.com/u/50989977?v=4&s=48" width = "48" height = "48" alt = "sreekaransrinath" title = "sreekaransrinath" / > < / a > < a href = "https://github.com/gupsammy" > < img src = "https://avatars.githubusercontent.com/u/20296019?v=4&s=48" width = "48" height = "48" alt = "gupsammy" title = "gupsammy" / > < / a > < a href = "https://github.com/cristip73" > < img src = "https://avatars.githubusercontent.com/u/24499421?v=4&s=48" width = "48" height = "48" alt = "cristip73" title = "cristip73" / > < / a > < a href = "https://github.com/nachoiacovino" > < img src = "https://avatars.githubusercontent.com/u/50103937?v=4&s=48" width = "48" height = "48" alt = "nachoiacovino" title = "nachoiacovino" / > < / a > < a href = "https://github.com/vsabavat" > < img src = "https://avatars.githubusercontent.com/u/50385532?v=4&s=48" width = "48" height = "48" alt = "Vasanth Rao Naik Sabavat" title = "Vasanth Rao Naik Sabavat" / > < / a > < a href = "https://github.com/cpojer" > < img src = "https://avatars.githubusercontent.com/u/13352?v=4&s=48" width = "48" height = "48" alt = "cpojer" title = "cpojer" / > < / a > < a href = "https://github.com/lc0rp" > < img src = "https://avatars.githubusercontent.com/u/2609441?v=4&s=48" width = "48" height = "48" alt = "lc0rp" title = "lc0rp" / > < / a > < a href = "https://github.com/scald" > < img src = "https://avatars.githubusercontent.com/u/1215913?v=4&s=48" width = "48" height = "48" alt = "scald" title = "scald" / > < / a >
2026-01-17 18:46:18 +00:00
< a href = "https://github.com/andranik-sahakyan" > < img src = "https://avatars.githubusercontent.com/u/8908029?v=4&s=48" width = "48" height = "48" alt = "andranik-sahakyan" title = "andranik-sahakyan" / > < / a > < a href = "https://github.com/davidguttman" > < img src = "https://avatars.githubusercontent.com/u/431696?v=4&s=48" width = "48" height = "48" alt = "davidguttman" title = "davidguttman" / > < / a > < a href = "https://github.com/sleontenko" > < img src = "https://avatars.githubusercontent.com/u/7135949?v=4&s=48" width = "48" height = "48" alt = "sleontenko" title = "sleontenko" / > < / a > < a href = "https://github.com/sircrumpet" > < img src = "https://avatars.githubusercontent.com/u/4436535?v=4&s=48" width = "48" height = "48" alt = "sircrumpet" title = "sircrumpet" / > < / a > < a href = "https://github.com/peschee" > < img src = "https://avatars.githubusercontent.com/u/63866?v=4&s=48" width = "48" height = "48" alt = "peschee" title = "peschee" / > < / a > < a href = "https://github.com/rafaelreis-r" > < img src = "https://avatars.githubusercontent.com/u/57492577?v=4&s=48" width = "48" height = "48" alt = "rafaelreis-r" title = "rafaelreis-r" / > < / a > < a href = "https://github.com/ratulsarna" > < img src = "https://avatars.githubusercontent.com/u/105903728?v=4&s=48" width = "48" height = "48" alt = "ratulsarna" title = "ratulsarna" / > < / a > < a href = "https://github.com/thewilloftheshadow" > < img src = "https://avatars.githubusercontent.com/u/35580099?v=4&s=48" width = "48" height = "48" alt = "thewilloftheshadow" title = "thewilloftheshadow" / > < / a > < a href = "https://github.com/lutr0" > < img src = "https://avatars.githubusercontent.com/u/76906369?v=4&s=48" width = "48" height = "48" alt = "lutr0" title = "lutr0" / > < / a > < a href = "https://github.com/danielz1z" > < img src = "https://avatars.githubusercontent.com/u/235270390?v=4&s=48" width = "48" height = "48" alt = "danielz1z" title = "danielz1z" / > < / a >
< a href = "https://github.com/gumadeiras" > < img src = "https://avatars.githubusercontent.com/u/5599352?v=4&s=48" width = "48" height = "48" alt = "gumadeiras" title = "gumadeiras" / > < / a > < a href = "https://github.com/emanuelst" > < img src = "https://avatars.githubusercontent.com/u/9994339?v=4&s=48" width = "48" height = "48" alt = "emanuelst" title = "emanuelst" / > < / a > < a href = "https://github.com/KristijanJovanovski" > < img src = "https://avatars.githubusercontent.com/u/8942284?v=4&s=48" width = "48" height = "48" alt = "KristijanJovanovski" title = "KristijanJovanovski" / > < / a > < a href = "https://github.com/CashWilliams" > < img src = "https://avatars.githubusercontent.com/u/613573?v=4&s=48" width = "48" height = "48" alt = "CashWilliams" title = "CashWilliams" / > < / a > < a href = "https://github.com/rdev" > < img src = "https://avatars.githubusercontent.com/u/8418866?v=4&s=48" width = "48" height = "48" alt = "rdev" title = "rdev" / > < / a > < a href = "https://github.com/osolmaz" > < img src = "https://avatars.githubusercontent.com/u/2453968?v=4&s=48" width = "48" height = "48" alt = "osolmaz" title = "osolmaz" / > < / a > < a href = "https://github.com/kiranjd" > < img src = "https://avatars.githubusercontent.com/u/25822851?v=4&s=48" width = "48" height = "48" alt = "kiranjd" title = "kiranjd" / > < / a > < a href = "https://github.com/adityashaw2" > < img src = "https://avatars.githubusercontent.com/u/41204444?v=4&s=48" width = "48" height = "48" alt = "adityashaw2" title = "adityashaw2" / > < / a > < a href = "https://github.com/sebslight" > < img src = "https://avatars.githubusercontent.com/u/19554889?v=4&s=48" width = "48" height = "48" alt = "sebslight" title = "sebslight" / > < / a > < a href = "https://github.com/search?q=sheeek" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "sheeek" title = "sheeek" / > < / a >
< a href = "https://github.com/artuskg" > < img src = "https://avatars.githubusercontent.com/u/11966157?v=4&s=48" width = "48" height = "48" alt = "artuskg" title = "artuskg" / > < / a > < a href = "https://github.com/onutc" > < img src = "https://avatars.githubusercontent.com/u/152018508?v=4&s=48" width = "48" height = "48" alt = "onutc" title = "onutc" / > < / a > < a href = "https://github.com/ManuelHettich" > < img src = "https://avatars.githubusercontent.com/u/17690367?v=4&s=48" width = "48" height = "48" alt = "manuelhettich" title = "manuelhettich" / > < / a > < a href = "https://github.com/minghinmatthewlam" > < img src = "https://avatars.githubusercontent.com/u/14224566?v=4&s=48" width = "48" height = "48" alt = "minghinmatthewlam" title = "minghinmatthewlam" / > < / a > < a href = "https://github.com/myfunc" > < img src = "https://avatars.githubusercontent.com/u/19294627?v=4&s=48" width = "48" height = "48" alt = "myfunc" title = "myfunc" / > < / a > < a href = "https://github.com/buddyh" > < img src = "https://avatars.githubusercontent.com/u/31752869?v=4&s=48" width = "48" height = "48" alt = "buddyh" title = "buddyh" / > < / a > < a href = "https://github.com/connorshea" > < img src = "https://avatars.githubusercontent.com/u/2977353?v=4&s=48" width = "48" height = "48" alt = "connorshea" title = "connorshea" / > < / a > < a href = "https://github.com/mcinteerj" > < img src = "https://avatars.githubusercontent.com/u/3613653?v=4&s=48" width = "48" height = "48" alt = "mcinteerj" title = "mcinteerj" / > < / a > < a href = "https://github.com/timkrase" > < img src = "https://avatars.githubusercontent.com/u/38947626?v=4&s=48" width = "48" height = "48" alt = "timkrase" title = "timkrase" / > < / a > < a href = "https://github.com/gerardward2007" > < img src = "https://avatars.githubusercontent.com/u/3002155?v=4&s=48" width = "48" height = "48" alt = "gerardward2007" title = "gerardward2007" / > < / a >
< a href = "https://github.com/obviyus" > < img src = "https://avatars.githubusercontent.com/u/22031114?v=4&s=48" width = "48" height = "48" alt = "obviyus" title = "obviyus" / > < / a > < a href = "https://github.com/tosh-hamburg" > < img src = "https://avatars.githubusercontent.com/u/58424326?v=4&s=48" width = "48" height = "48" alt = "tosh-hamburg" title = "tosh-hamburg" / > < / a > < a href = "https://github.com/azade-c" > < img src = "https://avatars.githubusercontent.com/u/252790079?v=4&s=48" width = "48" height = "48" alt = "azade-c" title = "azade-c" / > < / a > < a href = "https://github.com/roshanasingh4" > < img src = "https://avatars.githubusercontent.com/u/88576930?v=4&s=48" width = "48" height = "48" alt = "roshanasingh4" title = "roshanasingh4" / > < / a > < a href = "https://github.com/bjesuiter" > < img src = "https://avatars.githubusercontent.com/u/2365676?v=4&s=48" width = "48" height = "48" alt = "bjesuiter" title = "bjesuiter" / > < / a > < a href = "https://github.com/j1philli" > < img src = "https://avatars.githubusercontent.com/u/3744255?v=4&s=48" width = "48" height = "48" alt = "Josh Phillips" title = "Josh Phillips" / > < / a > < a href = "https://github.com/YuriNachos" > < img src = "https://avatars.githubusercontent.com/u/19365375?v=4&s=48" width = "48" height = "48" alt = "YuriNachos" title = "YuriNachos" / > < / a > < a href = "https://github.com/zerone0x" > < img src = "https://avatars.githubusercontent.com/u/39543393?v=4&s=48" width = "48" height = "48" alt = "zerone0x" title = "zerone0x" / > < / a > < a href = "https://github.com/superman32432432" > < img src = "https://avatars.githubusercontent.com/u/7228420?v=4&s=48" width = "48" height = "48" alt = "superman32432432" title = "superman32432432" / > < / a > < a href = "https://github.com/search?q=Yurii%20Chukhlib" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Yurii Chukhlib" title = "Yurii Chukhlib" / > < / a >
< a href = "https://github.com/antons" > < img src = "https://avatars.githubusercontent.com/u/129705?v=4&s=48" width = "48" height = "48" alt = "antons" title = "antons" / > < / a > < a href = "https://github.com/austinm911" > < img src = "https://avatars.githubusercontent.com/u/31991302?v=4&s=48" width = "48" height = "48" alt = "austinm911" title = "austinm911" / > < / a > < a href = "https://github.com/apps/blacksmith-sh" > < img src = "https://avatars.githubusercontent.com/in/807020?v=4&s=48" width = "48" height = "48" alt = "blacksmith-sh[bot]" title = "blacksmith-sh[bot]" / > < / a > < a href = "https://github.com/dan-dr" > < img src = "https://avatars.githubusercontent.com/u/6669808?v=4&s=48" width = "48" height = "48" alt = "dan-dr" title = "dan-dr" / > < / a > < a href = "https://github.com/grp06" > < img src = "https://avatars.githubusercontent.com/u/1573959?v=4&s=48" width = "48" height = "48" alt = "grp06" title = "grp06" / > < / a > < a href = "https://github.com/HeimdallStrategy" > < img src = "https://avatars.githubusercontent.com/u/223014405?v=4&s=48" width = "48" height = "48" alt = "HeimdallStrategy" title = "HeimdallStrategy" / > < / a > < a href = "https://github.com/imfing" > < img src = "https://avatars.githubusercontent.com/u/5097752?v=4&s=48" width = "48" height = "48" alt = "imfing" title = "imfing" / > < / a > < a href = "https://github.com/jalehman" > < img src = "https://avatars.githubusercontent.com/u/550978?v=4&s=48" width = "48" height = "48" alt = "jalehman" title = "jalehman" / > < / a > < a href = "https://github.com/jarvis-medmatic" > < img src = "https://avatars.githubusercontent.com/u/252428873?v=4&s=48" width = "48" height = "48" alt = "jarvis-medmatic" title = "jarvis-medmatic" / > < / a > < a href = "https://github.com/kkarimi" > < img src = "https://avatars.githubusercontent.com/u/875218?v=4&s=48" width = "48" height = "48" alt = "kkarimi" title = "kkarimi" / > < / a >
< a href = "https://github.com/mahmoudashraf93" > < img src = "https://avatars.githubusercontent.com/u/9130129?v=4&s=48" width = "48" height = "48" alt = "mahmoudashraf93" title = "mahmoudashraf93" / > < / a > < a href = "https://github.com/petter-b" > < img src = "https://avatars.githubusercontent.com/u/62076402?v=4&s=48" width = "48" height = "48" alt = "petter-b" title = "petter-b" / > < / a > < a href = "https://github.com/pkrmf" > < img src = "https://avatars.githubusercontent.com/u/1714267?v=4&s=48" width = "48" height = "48" alt = "pkrmf" title = "pkrmf" / > < / a > < a href = "https://github.com/RandyVentures" > < img src = "https://avatars.githubusercontent.com/u/149904821?v=4&s=48" width = "48" height = "48" alt = "RandyVentures" title = "RandyVentures" / > < / a > < a href = "https://github.com/erikpr1994" > < img src = "https://avatars.githubusercontent.com/u/6299331?v=4&s=48" width = "48" height = "48" alt = "erikpr1994" title = "erikpr1994" / > < / a > < a href = "https://github.com/jonasjancarik" > < img src = "https://avatars.githubusercontent.com/u/2459191?v=4&s=48" width = "48" height = "48" alt = "jonasjancarik" title = "jonasjancarik" / > < / a > < a href = "https://github.com/search?q=Keith%20the%20Silly%20Goose" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Keith the Silly Goose" title = "Keith the Silly Goose" / > < / a > < a href = "https://github.com/search?q=L36%20Server" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "L36 Server" title = "L36 Server" / > < / a > < a href = "https://github.com/search?q=Marc" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Marc" title = "Marc" / > < / a > < a href = "https://github.com/mitschabaude-bot" > < img src = "https://avatars.githubusercontent.com/u/247582884?v=4&s=48" width = "48" height = "48" alt = "mitschabaude-bot" title = "mitschabaude-bot" / > < / a >
< a href = "https://github.com/neist" > < img src = "https://avatars.githubusercontent.com/u/1029724?v=4&s=48" width = "48" height = "48" alt = "neist" title = "neist" / > < / a > < a href = "https://github.com/tyler6204" > < img src = "https://avatars.githubusercontent.com/u/64381258?v=4&s=48" width = "48" height = "48" alt = "tyler6204" title = "tyler6204" / > < / a > < a href = "https://github.com/chrisrodz" > < img src = "https://avatars.githubusercontent.com/u/2967620?v=4&s=48" width = "48" height = "48" alt = "chrisrodz" title = "chrisrodz" / > < / a > < a href = "https://github.com/search?q=Friederike%20Seiler" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Friederike Seiler" title = "Friederike Seiler" / > < / a > < a href = "https://github.com/gabriel-trigo" > < img src = "https://avatars.githubusercontent.com/u/38991125?v=4&s=48" width = "48" height = "48" alt = "gabriel-trigo" title = "gabriel-trigo" / > < / a > < a href = "https://github.com/Iamadig" > < img src = "https://avatars.githubusercontent.com/u/102129234?v=4&s=48" width = "48" height = "48" alt = "iamadig" title = "iamadig" / > < / a > < a href = "https://github.com/search?q=Kit" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Kit" title = "Kit" / > < / a > < a href = "https://github.com/koala73" > < img src = "https://avatars.githubusercontent.com/u/996596?v=4&s=48" width = "48" height = "48" alt = "koala73" title = "koala73" / > < / a > < a href = "https://github.com/manmal" > < img src = "https://avatars.githubusercontent.com/u/142797?v=4&s=48" width = "48" height = "48" alt = "manmal" title = "manmal" / > < / a > < a href = "https://github.com/ngutman" > < img src = "https://avatars.githubusercontent.com/u/1540134?v=4&s=48" width = "48" height = "48" alt = "ngutman" title = "ngutman" / > < / a >
< a href = "https://github.com/ogulcancelik" > < img src = "https://avatars.githubusercontent.com/u/7064011?v=4&s=48" width = "48" height = "48" alt = "ogulcancelik" title = "ogulcancelik" / > < / a > < a href = "https://github.com/pasogott" > < img src = "https://avatars.githubusercontent.com/u/23458152?v=4&s=48" width = "48" height = "48" alt = "pasogott" title = "pasogott" / > < / a > < a href = "https://github.com/petradonka" > < img src = "https://avatars.githubusercontent.com/u/7353770?v=4&s=48" width = "48" height = "48" alt = "petradonka" title = "petradonka" / > < / a > < a href = "https://github.com/rubyrunsstuff" > < img src = "https://avatars.githubusercontent.com/u/246602379?v=4&s=48" width = "48" height = "48" alt = "rubyrunsstuff" title = "rubyrunsstuff" / > < / a > < a href = "https://github.com/VACInc" > < img src = "https://avatars.githubusercontent.com/u/3279061?v=4&s=48" width = "48" height = "48" alt = "VACInc" title = "VACInc" / > < / a > < a href = "https://github.com/wes-davis" > < img src = "https://avatars.githubusercontent.com/u/16506720?v=4&s=48" width = "48" height = "48" alt = "wes-davis" title = "wes-davis" / > < / a > < a href = "https://github.com/zats" > < img src = "https://avatars.githubusercontent.com/u/2688806?v=4&s=48" width = "48" height = "48" alt = "zats" title = "zats" / > < / a > < a href = "https://github.com/search?q=Chris%20Taylor" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Chris Taylor" title = "Chris Taylor" / > < / a > < a href = "https://github.com/djangonavarro220" > < img src = "https://avatars.githubusercontent.com/u/251162586?v=4&s=48" width = "48" height = "48" alt = "Django Navarro" title = "Django Navarro" / > < / a > < a href = "https://github.com/evalexpr" > < img src = "https://avatars.githubusercontent.com/u/23485511?v=4&s=48" width = "48" height = "48" alt = "evalexpr" title = "evalexpr" / > < / a >
< a href = "https://github.com/henrino3" > < img src = "https://avatars.githubusercontent.com/u/4260288?v=4&s=48" width = "48" height = "48" alt = "henrino3" title = "henrino3" / > < / a > < a href = "https://github.com/mkbehr" > < img src = "https://avatars.githubusercontent.com/u/1285?v=4&s=48" width = "48" height = "48" alt = "mkbehr" title = "mkbehr" / > < / a > < a href = "https://github.com/oswalpalash" > < img src = "https://avatars.githubusercontent.com/u/6431196?v=4&s=48" width = "48" height = "48" alt = "oswalpalash" title = "oswalpalash" / > < / a > < a href = "https://github.com/pcty-nextgen-service-account" > < img src = "https://avatars.githubusercontent.com/u/112553441?v=4&s=48" width = "48" height = "48" alt = "pcty-nextgen-service-account" title = "pcty-nextgen-service-account" / > < / a > < a href = "https://github.com/Syhids" > < img src = "https://avatars.githubusercontent.com/u/671202?v=4&s=48" width = "48" height = "48" alt = "Syhids" title = "Syhids" / > < / a > < a href = "https://github.com/search?q=Aaron%20Konyer" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Aaron Konyer" title = "Aaron Konyer" / > < / a > < a href = "https://github.com/adam91holt" > < img src = "https://avatars.githubusercontent.com/u/9592417?v=4&s=48" width = "48" height = "48" alt = "adam91holt" title = "adam91holt" / > < / a > < a href = "https://github.com/erik-agens" > < img src = "https://avatars.githubusercontent.com/u/80908960?v=4&s=48" width = "48" height = "48" alt = "erik-agens" title = "erik-agens" / > < / a > < a href = "https://github.com/fcatuhe" > < img src = "https://avatars.githubusercontent.com/u/17382215?v=4&s=48" width = "48" height = "48" alt = "fcatuhe" title = "fcatuhe" / > < / a > < a href = "https://github.com/ivanrvpereira" > < img src = "https://avatars.githubusercontent.com/u/183991?v=4&s=48" width = "48" height = "48" alt = "ivanrvpereira" title = "ivanrvpereira" / > < / a >
< a href = "https://github.com/jayhickey" > < img src = "https://avatars.githubusercontent.com/u/1676460?v=4&s=48" width = "48" height = "48" alt = "jayhickey" title = "jayhickey" / > < / a > < a href = "https://github.com/jeffersonwarrior" > < img src = "https://avatars.githubusercontent.com/u/89030989?v=4&s=48" width = "48" height = "48" alt = "jeffersonwarrior" title = "jeffersonwarrior" / > < / a > < a href = "https://github.com/search?q=jeffersonwarrior" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "jeffersonwarrior" title = "jeffersonwarrior" / > < / a > < a href = "https://github.com/jdrhyne" > < img src = "https://avatars.githubusercontent.com/u/7828464?v=4&s=48" width = "48" height = "48" alt = "Jonathan D. Rhyne (DJ-D)" title = "Jonathan D. Rhyne (DJ-D)" / > < / a > < a href = "https://github.com/jverdi" > < img src = "https://avatars.githubusercontent.com/u/345050?v=4&s=48" width = "48" height = "48" alt = "jverdi" title = "jverdi" / > < / a > < a href = "https://github.com/mickahouan" > < img src = "https://avatars.githubusercontent.com/u/31423109?v=4&s=48" width = "48" height = "48" alt = "mickahouan" title = "mickahouan" / > < / a > < a href = "https://github.com/mjrussell" > < img src = "https://avatars.githubusercontent.com/u/1641895?v=4&s=48" width = "48" height = "48" alt = "mjrussell" title = "mjrussell" / > < / a > < a href = "https://github.com/p6l-richard" > < img src = "https://avatars.githubusercontent.com/u/18185649?v=4&s=48" width = "48" height = "48" alt = "p6l-richard" title = "p6l-richard" / > < / a > < a href = "https://github.com/philipp-spiess" > < img src = "https://avatars.githubusercontent.com/u/458591?v=4&s=48" width = "48" height = "48" alt = "philipp-spiess" title = "philipp-spiess" / > < / a > < a href = "https://github.com/robaxelsen" > < img src = "https://avatars.githubusercontent.com/u/13132899?v=4&s=48" width = "48" height = "48" alt = "robaxelsen" title = "robaxelsen" / > < / a >
< a href = "https://github.com/search?q=Sash%20Catanzarite" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Sash Catanzarite" title = "Sash Catanzarite" / > < / a > < a href = "https://github.com/sibbl" > < img src = "https://avatars.githubusercontent.com/u/866535?v=4&s=48" width = "48" height = "48" alt = "sibbl" title = "sibbl" / > < / a > < a href = "https://github.com/search?q=VAC" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "VAC" title = "VAC" / > < / a > < a href = "https://github.com/zknicker" > < img src = "https://avatars.githubusercontent.com/u/1164085?v=4&s=48" width = "48" height = "48" alt = "zknicker" title = "zknicker" / > < / a > < a href = "https://github.com/search?q=alejandro%20maza" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "alejandro maza" title = "alejandro maza" / > < / a > < a href = "https://github.com/andrewting19" > < img src = "https://avatars.githubusercontent.com/u/10536704?v=4&s=48" width = "48" height = "48" alt = "andrewting19" title = "andrewting19" / > < / a > < a href = "https://github.com/Asleep123" > < img src = "https://avatars.githubusercontent.com/u/122379135?v=4&s=48" width = "48" height = "48" alt = "Asleep123" title = "Asleep123" / > < / a > < a href = "https://github.com/bolismauro" > < img src = "https://avatars.githubusercontent.com/u/771999?v=4&s=48" width = "48" height = "48" alt = "bolismauro" title = "bolismauro" / > < / a > < a href = "https://github.com/cash-echo-bot" > < img src = "https://avatars.githubusercontent.com/u/252747386?v=4&s=48" width = "48" height = "48" alt = "cash-echo-bot" title = "cash-echo-bot" / > < / a > < a href = "https://github.com/search?q=Clawd" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Clawd" title = "Clawd" / > < / a >
< a href = "https://github.com/conhecendocontato" > < img src = "https://avatars.githubusercontent.com/u/82890727?v=4&s=48" width = "48" height = "48" alt = "conhecendocontato" title = "conhecendocontato" / > < / a > < a href = "https://github.com/search?q=Dimitrios%20Ploutarchos" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Dimitrios Ploutarchos" title = "Dimitrios Ploutarchos" / > < / a > < a href = "https://github.com/search?q=Drake%20Thomsen" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Drake Thomsen" title = "Drake Thomsen" / > < / a > < a href = "https://github.com/gtsifrikas" > < img src = "https://avatars.githubusercontent.com/u/8904378?v=4&s=48" width = "48" height = "48" alt = "gtsifrikas" title = "gtsifrikas" / > < / a > < a href = "https://github.com/HazAT" > < img src = "https://avatars.githubusercontent.com/u/363802?v=4&s=48" width = "48" height = "48" alt = "HazAT" title = "HazAT" / > < / a > < a href = "https://github.com/hrdwdmrbl" > < img src = "https://avatars.githubusercontent.com/u/554881?v=4&s=48" width = "48" height = "48" alt = "hrdwdmrbl" title = "hrdwdmrbl" / > < / a > < a href = "https://github.com/hugobarauna" > < img src = "https://avatars.githubusercontent.com/u/2719?v=4&s=48" width = "48" height = "48" alt = "hugobarauna" title = "hugobarauna" / > < / a > < a href = "https://github.com/search?q=Jamie%20Openshaw" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Jamie Openshaw" title = "Jamie Openshaw" / > < / a > < a href = "https://github.com/search?q=Jarvis" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Jarvis" title = "Jarvis" / > < / a > < a href = "https://github.com/search?q=Jefferson%20Nunn" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Jefferson Nunn" title = "Jefferson Nunn" / > < / a >
< a href = "https://github.com/kitze" > < img src = "https://avatars.githubusercontent.com/u/1160594?v=4&s=48" width = "48" height = "48" alt = "kitze" title = "kitze" / > < / a > < a href = "https://github.com/levifig" > < img src = "https://avatars.githubusercontent.com/u/1605?v=4&s=48" width = "48" height = "48" alt = "levifig" title = "levifig" / > < / a > < a href = "https://github.com/search?q=Lloyd" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Lloyd" title = "Lloyd" / > < / a > < a href = "https://github.com/longmaba" > < img src = "https://avatars.githubusercontent.com/u/9361500?v=4&s=48" width = "48" height = "48" alt = "longmaba" title = "longmaba" / > < / a > < a href = "https://github.com/loukotal" > < img src = "https://avatars.githubusercontent.com/u/18210858?v=4&s=48" width = "48" height = "48" alt = "loukotal" title = "loukotal" / > < / a > < a href = "https://github.com/martinpucik" > < img src = "https://avatars.githubusercontent.com/u/5503097?v=4&s=48" width = "48" height = "48" alt = "martinpucik" title = "martinpucik" / > < / a > < a href = "https://github.com/search?q=Miles" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Miles" title = "Miles" / > < / a > < a href = "https://github.com/mrdbstn" > < img src = "https://avatars.githubusercontent.com/u/58957632?v=4&s=48" width = "48" height = "48" alt = "mrdbstn" title = "mrdbstn" / > < / a > < a href = "https://github.com/MSch" > < img src = "https://avatars.githubusercontent.com/u/7475?v=4&s=48" width = "48" height = "48" alt = "MSch" title = "MSch" / > < / a > < a href = "https://github.com/search?q=Mustafa%20Tag%20Eldeen" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Mustafa Tag Eldeen" title = "Mustafa Tag Eldeen" / > < / a >
< a href = "https://github.com/ndraiman" > < img src = "https://avatars.githubusercontent.com/u/12609607?v=4&s=48" width = "48" height = "48" alt = "ndraiman" title = "ndraiman" / > < / a > < a href = "https://github.com/nexty5870" > < img src = "https://avatars.githubusercontent.com/u/3869659?v=4&s=48" width = "48" height = "48" alt = "nexty5870" title = "nexty5870" / > < / a > < a href = "https://github.com/prathamdby" > < img src = "https://avatars.githubusercontent.com/u/134331217?v=4&s=48" width = "48" height = "48" alt = "prathamdby" title = "prathamdby" / > < / a > < a href = "https://github.com/reeltimeapps" > < img src = "https://avatars.githubusercontent.com/u/637338?v=4&s=48" width = "48" height = "48" alt = "reeltimeapps" title = "reeltimeapps" / > < / a > < a href = "https://github.com/RLTCmpe" > < img src = "https://avatars.githubusercontent.com/u/10762242?v=4&s=48" width = "48" height = "48" alt = "RLTCmpe" title = "RLTCmpe" / > < / a > < a href = "https://github.com/search?q=Rolf%20Fredheim" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Rolf Fredheim" title = "Rolf Fredheim" / > < / a > < a href = "https://github.com/search?q=Rony%20Kelner" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Rony Kelner" title = "Rony Kelner" / > < / a > < a href = "https://github.com/search?q=Samrat%20Jha" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Samrat Jha" title = "Samrat Jha" / > < / a > < a href = "https://github.com/siraht" > < img src = "https://avatars.githubusercontent.com/u/73152895?v=4&s=48" width = "48" height = "48" alt = "siraht" title = "siraht" / > < / a > < a href = "https://github.com/snopoke" > < img src = "https://avatars.githubusercontent.com/u/249606?v=4&s=48" width = "48" height = "48" alt = "snopoke" title = "snopoke" / > < / a >
< a href = "https://github.com/suminhthanh" > < img src = "https://avatars.githubusercontent.com/u/2907636?v=4&s=48" width = "48" height = "48" alt = "suminhthanh" title = "suminhthanh" / > < / a > < a href = "https://github.com/search?q=The%20Admiral" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "The Admiral" title = "The Admiral" / > < / a > < a href = "https://github.com/thesash" > < img src = "https://avatars.githubusercontent.com/u/1166151?v=4&s=48" width = "48" height = "48" alt = "thesash" title = "thesash" / > < / a > < a href = "https://github.com/search?q=Ubuntu" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Ubuntu" title = "Ubuntu" / > < / a > < a href = "https://github.com/voidserf" > < img src = "https://avatars.githubusercontent.com/u/477673?v=4&s=48" width = "48" height = "48" alt = "voidserf" title = "voidserf" / > < / a > < a href = "https://github.com/wstock" > < img src = "https://avatars.githubusercontent.com/u/1394687?v=4&s=48" width = "48" height = "48" alt = "wstock" title = "wstock" / > < / a > < a href = "https://github.com/search?q=Zach%20Knickerbocker" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Zach Knickerbocker" title = "Zach Knickerbocker" / > < / a > < a href = "https://github.com/Alphonse-arianee" > < img src = "https://avatars.githubusercontent.com/u/254457365?v=4&s=48" width = "48" height = "48" alt = "Alphonse-arianee" title = "Alphonse-arianee" / > < / a > < a href = "https://github.com/search?q=Azade" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Azade" title = "Azade" / > < / a > < a href = "https://github.com/carlulsoe" > < img src = "https://avatars.githubusercontent.com/u/34673973?v=4&s=48" width = "48" height = "48" alt = "carlulsoe" title = "carlulsoe" / > < / a >
< a href = "https://github.com/search?q=ddyo" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "ddyo" title = "ddyo" / > < / a > < a href = "https://github.com/search?q=Erik" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Erik" title = "Erik" / > < / a > < a href = "https://github.com/latitudeki5223" > < img src = "https://avatars.githubusercontent.com/u/119656367?v=4&s=48" width = "48" height = "48" alt = "latitudeki5223" title = "latitudeki5223" / > < / a > < a href = "https://github.com/search?q=Manuel%20Maly" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Manuel Maly" title = "Manuel Maly" / > < / a > < a href = "https://github.com/search?q=Mourad%20Boustani" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Mourad Boustani" title = "Mourad Boustani" / > < / a > < a href = "https://github.com/pcty-nextgen-ios-builder" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "pcty-nextgen-ios-builder" title = "pcty-nextgen-ios-builder" / > < / a > < a href = "https://github.com/search?q=Quentin" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Quentin" title = "Quentin" / > < / a > < a href = "https://github.com/search?q=Randy%20Torres" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "Randy Torres" title = "Randy Torres" / > < / a > < a href = "https://github.com/rhjoh" > < img src = "https://avatars.githubusercontent.com/u/105699450?v=4&s=48" width = "48" height = "48" alt = "rhjoh" title = "rhjoh" / > < / a > < a href = "https://github.com/ronak-guliani" > < img src = "https://avatars.githubusercontent.com/u/23518228?v=4&s=48" width = "48" height = "48" alt = "ronak-guliani" title = "ronak-guliani" / > < / a >
< a href = "https://github.com/search?q=William%20Stock" > < img src = "assets/avatar-placeholder.svg" width = "48" height = "48" alt = "William Stock" title = "William Stock" / > < / a >
2026-01-08 03:22:14 +01:00
< / p >