Rename to nix-clawdbot and update references

This commit is contained in:
DJTBOT 2026-01-04 12:56:07 +01:00
parent c3c7a86cef
commit 82ee44aea4
14 changed files with 57 additions and 56 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
result

View File

@ -1,4 +1,4 @@
# AGENTS.md — nix-clawdis
# AGENTS.md — nix-clawdbot
Single source of truth for product direction: `README.md`.
@ -17,7 +17,7 @@ Defaults:
Philosophy:
The Zen of ~~Python~~ Clawdis, ~~by~~ shamelessly stolen from Tim Peters
The Zen of ~~Python~~ Clawdbot, ~~by~~ shamelessly stolen from Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.

View File

@ -1,12 +1,12 @@
# nix-clawdis
# nix-clawdbot
> Declarative Clawdis. Bulletproof by default.
> Declarative Clawdbot. Bulletproof by default.
>
> macOS only. Linux/Windows are out of scope for now.
>
> <sub>[skip to agent copypasta](#give-this-to-your-ai-agent)</sub>
>
> <sub>Questions? Join the Clawdis Discord and ask in **#nix**.</sub>
> <sub>Questions? Join the Clawdbot Discord and ask in **#nix-packaging**: https://discord.com/channels/1456350064065904867/1457003026412736537</sub>
![On declarative build systems](docs/images/on-declarative-build-systems.png)
@ -27,7 +27,7 @@ This README is the **single source of truth** for maintainers.
## Why this exists
Clawdis is the right product. An AI assistant that lives in Telegram, controls your Mac, and actually does things.
Clawdbot is the right product. An AI assistant that lives in Telegram, controls your Mac, and actually does things.
This repo wraps it in Nix: a pinned, reproducible package that installs the gateway, the macOS app, and all the tools declaratively. Every dependency locked. Every update intentional. Rollback in seconds.
@ -51,19 +51,19 @@ You talk to Telegram, your Mac does things.
Copy this entire block and paste it to Claude, Cursor, or whatever you use:
```text
I want to set up nix-clawdis on my Mac.
I want to set up nix-clawdbot on my Mac.
Repository: github:joshp123/nix-clawdis
Repository: github:clawdbot/nix-clawdbot
What nix-clawdis is:
- Batteries-included Nix package for Clawdis (AI assistant gateway)
What nix-clawdbot is:
- Batteries-included Nix package for Clawdbot (AI assistant gateway)
- Installs gateway + macOS app + tools (whisper, spotify, cameras, etc)
- Runs as a launchd service, survives reboots
What I need you to do:
1. Check if Determinate Nix is installed (if not, install it)
2. Create a local flake at ~/code/clawdis-local using templates/agent-first/flake.nix
3. Create a docs dir next to the config (e.g., ~/code/clawdis-local/documents) with AGENTS.md, SOUL.md, TOOLS.md
2. Create a local flake at ~/code/clawdbot-local using templates/agent-first/flake.nix
3. Create a docs dir next to the config (e.g., ~/code/clawdbot-local/documents) with AGENTS.md, SOUL.md, TOOLS.md
- If ~/.clawdis/workspace already has these files, adopt them into the documents dir first
3. Help me create a Telegram bot (@BotFather) and get my chat ID (@userinfobot)
4. Set up secrets (bot token, Anthropic key) - plain files at ~/.secrets/ is fine
@ -110,7 +110,7 @@ Then: `home-manager switch --flake .#youruser`
This is still singleinstance, but uses `instances.default` to unlock pergroup mention rules.
If `instances` is set, you dont need `programs.clawdis.enable`.
Group mention overrides below mirror upstream Clawdis config.
Group mention overrides below mirror upstream Clawdbot config.
Secrets are shown using `/run/agenix/...` (from a repo with your agenix secrets), but any file path works.
Docs are managed from `./documents` and symlinked into the workspace on each switch.
@ -183,14 +183,14 @@ pinned to a released version (no local app builds yet).
```nix
# flake inputs (pin prod + app)
inputs = {
nix-clawdis.url = "github:joshp123/nix-clawdis?ref=v0.1.0"; # pins macOS app + gateway bundle
nix-clawdbot.url = "github:clawdbot/nix-clawdbot?ref=v0.1.0"; # pins macOS app + gateway bundle
};
let
prod = {
enable = true;
# Prod gateway pin (comes from nix-clawdis input @ v0.1.0 above).
package = inputs.nix-clawdis.packages.${pkgs.system}.clawdis-gateway;
# Prod gateway pin (comes from nix-clawdbot input @ v0.1.0 above).
package = inputs.nix-clawdbot.packages.${pkgs.system}.clawdis-gateway;
providers.telegram.enable = true;
providers.telegram.botTokenFile = "/run/agenix/telegram-prod";
providers.telegram.allowFrom = [ 12345678 ];
@ -198,19 +198,19 @@ let
plugins = [ { source = "github:owner/your-plugin"; } ];
};
in {
# Pinned macOS app (POC: no local app builds, uses nix-clawdis @ v0.1.0 above).
# Pinned macOS app (POC: no local app builds, uses nix-clawdbot @ v0.1.0 above).
programs.clawdis.appPackage =
inputs.nix-clawdis.packages.${pkgs.system}.clawdis-app;
inputs.nix-clawdbot.packages.${pkgs.system}.clawdis-app;
programs.clawdis.documents = ./documents;
programs.clawdis.instances = {
prod = prod;
dev = prod // {
# Dev uses the same pinned macOS app (from nix-clawdis input),
# Dev uses the same pinned macOS app (from nix-clawdbot input),
# but overrides the gateway package to a local checkout.
providers.telegram.botTokenFile = "/run/agenix/telegram-dev";
gatewayPort = 18790;
# Local gateway checkout (path). App stays pinned.
gatewayPath = "/Users/you/code/clawdis";
gatewayPath = "/Users/you/code/clawdbot";
# Local plugin overrides prod if names collide (last wins).
plugins = prod.plugins ++ [
{ source = "path:/Users/you/code/your-plugin"; }
@ -283,10 +283,10 @@ Use the `hello` CLI to print a greeting.
**Helloworld uses no config:** it declares empty `needs` and requires no
perplugin `config`.
## Paste this prompt to your coding agent (make your plugin nixclawdisnative)
## Paste this prompt to your coding agent (make your plugin nixclawdbotnative)
```text
Goal: Make this repo a nixclawdisnative plugin with the standard contract.
Goal: Make this repo a nixclawdbotnative plugin with the standard contract.
Contract to implement:
1) Add clawdisPlugin output in flake.nix:
@ -353,7 +353,7 @@ Deliverables: flake output, env overrides, AGENTS.md, skill update.
- Nix pulls the plugin, reads `clawdisPlugin`, and installs the CLI(s).
- Skills are symlinked into `~/.clawdis/skills/<plugin>/<skill>`.
- Clawdis loads managed skills automatically at runtime.
- Clawdbot loads managed skills automatically at runtime.
- Any plugin services run as **userlevel** launchd agents (no sudo).
- MVP scope: tools/skills should come **from plugins only** (no adhoc installs).
- Plugin `settings` are rendered to `config.json` in the plugins first `stateDir`.
@ -422,11 +422,11 @@ home-manager switch --rollback # revert
## Upstream
Wraps [Clawdis](https://github.com/steipete/clawdis) by Peter Steinberger.
Wraps [Clawdbot](https://github.com/clawdbot/clawdbot) by Peter Steinberger.
## Philosophy
The Zen of ~~Python~~ Clawdis, ~~by~~ shamelessly stolen from Tim Peters
The Zen of ~~Python~~ Clawdbot, ~~by~~ shamelessly stolen from Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

View File

@ -1,4 +1,4 @@
# RFC: Declarative Clawdis as a Nix Package (nix-clawdis)
# RFC: Declarative Clawdbot as a Nix Package (nix-clawdbot)
- Date: 2026-01-02
- Status: Implementing
@ -6,7 +6,7 @@
## 1) Narrative: what we are building and why
Clawdis is powerful but hard to install and configure for new users, especially those who do not want to learn Nix internals. We need a batteriesincluded, obvious, and safe path to get a working Clawdis instance with minimal friction. This RFC proposes a dedicated public repo, `nix-clawdis`, that packages Clawdis for Nix and provides a declarative, userfriendly configuration layer with strong defaults and an agentfirst onboarding flow.
Clawdbot is powerful but hard to install and configure for new users, especially those who do not want to learn Nix internals. We need a batteriesincluded, obvious, and safe path to get a working Clawdbot instance with minimal friction. This RFC proposes a dedicated public repo, `nix-clawdbot`, that packages Clawdbot for Nix and provides a declarative, userfriendly configuration layer with strong defaults and an agentfirst onboarding flow.
The goal is a **fully declarative bootstrap**: users provide a small set of inputs (token path + allowlist), and the setup is deterministic and repeatable.
@ -22,7 +22,7 @@ The goal is a **fully declarative bootstrap**: users provide a small set of inpu
## 1.2) Scope boundaries (avoid confusion)
This RFC is only about:
- The public `nix-clawdis` repo (package + module + docs).
- The public `nix-clawdbot` repo (package + module + docs).
- A generic, enduser Nix setup that lives outside any personal config repo.
This RFC is explicitly **not** about:
@ -32,7 +32,7 @@ This RFC is explicitly **not** about:
## 2) Goals / Nongoals
Goals:
- Provide a Nix package for Clawdis and a Home Manager module with batteriesincluded defaults.
- Provide a Nix package for Clawdbot and a Home Manager module with batteriesincluded defaults.
- Provide a macOS app bundle package aligned to the gateway version.
- Make configuration technically light with explicit options and guardrails.
- Telegramfirst configuration and defaults.
@ -40,17 +40,17 @@ Goals:
- New user can get a working bot in 10 minutes without understanding Nix internals.
Nongoals:
- Rewriting Clawdis core functionality.
- Rewriting Clawdbot core functionality.
- Supporting nonNix install paths in this repo.
- Shipping a hosted SaaS or paid hosting.
- Replacing upstream Clawdis docs.
- Replacing upstream Clawdbot docs.
- Crossplatform support (Linux/Windows) in v1.
- CI automation in v1.
## 3) System overview
`nix-clawdis` is a public repo that provides (macOSonly in v1, no CI in v1):
- A Nix package derivation for the Clawdis gateway.
`nix-clawdbot` is a public repo that provides (macOSonly in v1, no CI in v1):
- A Nix package derivation for the Clawdbot gateway.
- A Nix package for the macOS app bundle (DMG).
- A Home Manager module for userlevel config and service wiring.
- A nixdarwin module for macOS users (optional, thin wrapper over HM).
@ -59,8 +59,8 @@ Nongoals:
## 4) Components and responsibilities
- **Package derivation**: builds Clawdis gateway from a pinned source.
- **App bundle**: installs Clawdis.app from a pinned DMG matching the gateway version.
- **Package derivation**: builds Clawdbot gateway from a pinned source.
- **App bundle**: installs Clawdbot.app from a pinned DMG matching the gateway version.
- **Home Manager module**: declarative config, writes `~/.clawdis/clawdis.json`, manages services.
- **Flake outputs**:
- `packages.<system>.clawdis` (default batteriesincluded bundle)
@ -93,7 +93,7 @@ The README is the only supported onboarding path. It must include:
## 8) Backing tools (batteriesincluded)
- Base and extended toolchains are installed via Nix by default.
- Tools correspond to upstream Clawdis skill installers (brew/go/node/uv) mapped into nixpkgs where possible.
- Tools correspond to upstream Clawdbot skill installers (brew/go/node/uv) mapped into nixpkgs where possible.
## 9) Compatibility guarantees
@ -106,7 +106,7 @@ The README is the only supported onboarding path. It must include:
We will maintain two distinct setups:
- **Prod (stable)**
- Uses `nix-clawdis` batteriesincluded package.
- Uses `nix-clawdbot` batteriesincluded package.
- Pinned to released tags.
- No source builds.
- Launchd managed by Nix.

View File

@ -1,5 +1,5 @@
{
description = "Hello-world Clawdis plugin";
description = "Hello-world Clawdbot plugin";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";

View File

@ -1,5 +1,5 @@
{
description = "nix-clawdis: declarative Clawdis packaging for macOS";
description = "nix-clawdbot: declarative Clawdbot packaging for macOS";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";

View File

@ -8,7 +8,7 @@ stdenvNoCC.mkDerivation {
version = "2.0.0-beta4";
src = fetchzip {
url = "https://github.com/steipete/clawdis/releases/download/v2.0.0-beta4/Clawdis-2.0.0-beta4.zip";
url = "https://github.com/clawdbot/clawdbot/releases/download/v2.0.0-beta4/Clawdis-2.0.0-beta4.zip";
hash = "sha256-Oa7cejVFfZtJBSmjDaRjqocVyXo+WeS/xucGpJFDzIg=";
stripRoot = false;
};
@ -28,8 +28,8 @@ stdenvNoCC.mkDerivation {
'';
meta = with lib; {
description = "Clawdis macOS app bundle";
homepage = "https://github.com/steipete/clawdis";
description = "Clawdbot macOS app bundle";
homepage = "https://github.com/clawdbot/clawdbot";
license = licenses.mit;
platforms = platforms.darwin;
};

View File

@ -11,8 +11,8 @@ buildEnv {
pathsToLink = [ "/bin" "/Applications" ];
meta = with lib; {
description = "Clawdis batteries-included bundle (gateway + app + tools)";
homepage = "https://github.com/steipete/clawdis";
description = "Clawdbot batteries-included bundle (gateway + app + tools)";
homepage = "https://github.com/clawdbot/clawdbot";
license = licenses.mit;
platforms = platforms.darwin;
};

View File

@ -65,8 +65,8 @@ stdenv.mkDerivation (finalAttrs: {
'';
meta = with lib; {
description = "Telegram-first AI gateway (Clawdis)";
homepage = "https://github.com/joshp123/clawdis";
description = "Telegram-first AI gateway (Clawdbot)";
homepage = "https://github.com/clawdbot/clawdbot";
license = licenses.mit;
platforms = platforms.darwin;
mainProgram = "clawdis";

View File

@ -1,7 +1,7 @@
# Pinned Clawdis source for nix-clawdis
# Pinned Clawdbot source for nix-clawdbot
{
owner = "steipete";
repo = "clawdis";
owner = "clawdbot";
repo = "clawdbot";
rev = "v2.0.0-beta5";
hash = "sha256-DTMIyozlix8eixu8GnSL4+sd46KuS3LejOCLOIHZqjk=";
}

View File

@ -1,4 +1,4 @@
# AGENTS.md — Clawdis Workspace
# AGENTS.md — Clawdbot Workspace
This file is managed by Nix. Update it in the repo, not in the workspace.

View File

@ -1,4 +1,4 @@
# SOUL.md
Clawdis exists to do useful work reliably with minimal friction.
Clawdbot exists to do useful work reliably with minimal friction.

View File

@ -1,24 +1,24 @@
{
description = "Clawdis local";
description = "Clawdbot local";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
nix-clawdis.url = "github:joshp123/nix-clawdis";
nix-clawdbot.url = "github:clawdbot/nix-clawdbot";
};
outputs = { self, nixpkgs, home-manager, nix-clawdis }:
outputs = { self, nixpkgs, home-manager, nix-clawdbot }:
let
# REPLACE: aarch64-darwin (Apple Silicon) or x86_64-darwin (Intel)
system = "<system>";
pkgs = import nixpkgs { inherit system; overlays = [ nix-clawdis.overlays.default ]; };
pkgs = import nixpkgs { inherit system; overlays = [ nix-clawdbot.overlays.default ]; };
in {
# REPLACE: <user> with your macOS username (run `whoami`)
homeConfigurations."<user>" = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [
nix-clawdis.homeManagerModules.clawdis
nix-clawdbot.homeManagerModules.clawdis
{
# Required for Home Manager standalone
home.username = "<user>";