Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
07049c4
feat(clawdbot): add remote mode for macOS nodes
shunkakinoki Jan 16, 2026
7536539
feat(clawdbot): integrate host detection for kyber environment
shunkakinoki Jan 17, 2026
7de2813
chore: update
shunkakinoki Jan 17, 2026
ceb652d
chore: update
shunkakinoki Jan 17, 2026
d892aa9
feat(clawdbot): add _cliproxyapi_function to manage cliproxyapi service
shunkakinoki Jan 17, 2026
2d11fc0
feat(clawdbot): refactor cliproxyapi alias to use function-based impl…
shunkakinoki Jan 17, 2026
dfc41a6
feat(clawdbot): reorder package list and fix dependencies in default.nix
shunkakinoki Jan 17, 2026
e109ee9
feat(clawdbot): add llm package to the default.nix configuration
shunkakinoki Jan 17, 2026
599870c
chore: fix trailing whitespace in extract-secrets.sh
shunkakinoki Jan 17, 2026
f82a8c4
feat(clawdbot): add llm configuration and extra OpenAI models
shunkakinoki Jan 17, 2026
13c912c
Merge remote-tracking branch 'refs/remotes/origin/feat/clawdbot-remot…
shunkakinoki Jan 17, 2026
1558cba
feat(clawdbot): add support for extra OpenAI models on Darwin and Linux
shunkakinoki Jan 17, 2026
fd38bdb
feat(clawdbot): update remote gateway configuration to nest URL under…
shunkakinoki Jan 17, 2026
4ea182f
feat(clawdbot): enhance remote gateway configuration with node identi…
shunkakinoki Jan 17, 2026
f7d2eaa
feat(clawdbot): simplify node name assignment in remote gateway confi…
shunkakinoki Jan 17, 2026
a2e9428
feat(clawdbot): nest node name under 'client' in remote gateway confi…
shunkakinoki Jan 17, 2026
a7628a1
feat(nix): pass HOST variable for named and auto-detected hosts in ni…
shunkakinoki Jan 17, 2026
58ba55e
feat(clawdbot): update remote gateway configuration to nest client na…
shunkakinoki Jan 17, 2026
34d26c5
feat(clawdbot): update remote gateway configuration to nest client na…
shunkakinoki Jan 17, 2026
98ba4bd
feat(clawdbot): update clawdbot source to version 2026.1.16-2 with cu…
shunkakinoki Jan 17, 2026
fa117db
feat(coverage): remove install-skills.sh spec and update coverage list
shunkakinoki Jan 17, 2026
ab72bc5
feat(clawdbot): inject gateway token into clawdbot.json for remote mo…
shunkakinoki Jan 17, 2026
21e9385
feat(clawdbot): add launchd configuration to auto-start Clawdbot.app …
shunkakinoki Jan 17, 2026
1ec34dc
feat(clawdbot): update launchd configuration for Clawdbot.app and add…
shunkakinoki Jan 17, 2026
218cd74
feat(clawdbot): clean up YAML formatting and improve Nix overlay stru…
shunkakinoki Jan 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,5 @@ CLIPROXY_MANAGEMENT_PASSWORD=your-management-key-here
CLAWDBOT_TELEGRAM_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz
# Get your Anthropic API key from: https://console.anthropic.com/
CLAWDBOT_ANTHROPIC_KEY=sk-ant-api03-your-key-here
# Gateway token for remote mode clients (from kyber: cat ~/.config/clawdbot/gateway-token)
CLAWDBOT_GATEWAY_TOKEN=your-gateway-token-here
Comment on lines +12 to +13

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Align key order with dotenv-linter.

The linter expects CLAWDBOT_GATEWAY_TOKEN before CLAWDBOT_TELEGRAM_TOKEN.

💡 Suggested reorder
-# Get Telegram bot token from `@BotFather`: https://t.me/BotFather
-CLAWDBOT_TELEGRAM_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz
-# Get your Anthropic API key from: https://console.anthropic.com/
-CLAWDBOT_ANTHROPIC_KEY=sk-ant-api03-your-key-here
-# Gateway token for remote mode clients (from kyber: cat ~/.config/clawdbot/gateway-token)
-CLAWDBOT_GATEWAY_TOKEN=your-gateway-token-here
+# Gateway token for remote mode clients (from kyber: cat ~/.config/clawdbot/gateway-token)
+CLAWDBOT_GATEWAY_TOKEN=your-gateway-token-here
+# Get Telegram bot token from `@BotFather`: https://t.me/BotFather
+CLAWDBOT_TELEGRAM_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz
+# Get your Anthropic API key from: https://console.anthropic.com/
+CLAWDBOT_ANTHROPIC_KEY=sk-ant-api03-your-key-here
🧰 Tools
🪛 dotenv-linter (4.0.0)

[warning] 13-13: [UnorderedKey] The CLAWDBOT_GATEWAY_TOKEN key should go before the CLAWDBOT_TELEGRAM_TOKEN key

(UnorderedKey)

🤖 Prompt for AI Agents
In @.env.example around lines 12 - 13, Reorder the two env entries so
CLAWDBOT_GATEWAY_TOKEN appears before CLAWDBOT_TELEGRAM_TOKEN to satisfy
dotenv-linter; locate the CLAWDBOT_GATEWAY_TOKEN and CLAWDBOT_TELEGRAM_TOKEN
keys in the .env example, move the CLAWDBOT_GATEWAY_TOKEN block (including its
comment) above the CLAWDBOT_TELEGRAM_TOKEN entry, and keep surrounding
formatting and comments intact.

14 changes: 7 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ nix-build: nix-connect ## Build Nix configuration.
elif [ "$(NIX_CONFIG_TYPE)" = "nixosConfigurations" ]; then \
$(NIX_ALLOW_UNFREE) $(NIX_EXEC) build .#nixosConfigurations.runner.config.system.build.toplevel $(NIX_FLAGS) --impure --no-update-lock-file --show-trace; \
elif [ "$(NIX_CONFIG_TYPE)" = "homeConfigurations" ]; then \
$(NIX_ALLOW_UNFREE) $(NIX_EXEC) build .#$(NIX_CONFIG_TYPE)."$(NIX_USERNAME)@$(NIX_SYSTEM)".activationPackage $(NIX_FLAGS) --impure --no-update-lock-file --show-trace; \
HOST=$(DETECTED_HOST) $(NIX_ALLOW_UNFREE) $(NIX_EXEC) build .#$(NIX_CONFIG_TYPE)."$(NIX_USERNAME)@$(NIX_SYSTEM)".activationPackage $(NIX_FLAGS) --impure --no-update-lock-file --show-trace; \
else \
echo "Unsupported OS $(OS) for non-CI build"; \
exit 1; \
Expand All @@ -264,7 +264,7 @@ nix-build: nix-connect ## Build Nix configuration.
elif [ "$(NIX_CONFIG_TYPE)" = "nixosConfigurations" ]; then \
sudo $(NIX_ALLOW_UNFREE) $(NIX_EXEC) run $(NIX_FLAGS) nixpkgs#nixos-rebuild -- build --flake .#$(NIX_SYSTEM) --impure; \
elif [ "$(NIX_CONFIG_TYPE)" = "homeConfigurations" ]; then \
$(NIX_ALLOW_UNFREE) $(NIX_EXEC) build .#$(NIX_CONFIG_TYPE)."$(NIX_USERNAME)@$(NIX_SYSTEM)".activationPackage $(NIX_FLAGS) --impure --show-trace; \
HOST=$(DETECTED_HOST) $(NIX_ALLOW_UNFREE) $(NIX_EXEC) build .#$(NIX_CONFIG_TYPE)."$(NIX_USERNAME)@$(NIX_SYSTEM)".activationPackage $(NIX_FLAGS) --impure --show-trace; \
else \
echo "Unsupported OS $(OS) for non-CI build"; \
exit 1; \
Expand Down Expand Up @@ -332,22 +332,22 @@ nix-switch: ## Activate Nix configuration.
elif [ "$(OS)" = "Darwin" ]; then \
if [ -n "$(HOST)" ]; then \
echo "Switching named host: $(HOST)"; \
sudo $(NIX_ALLOW_UNFREE) $(DARWIN_REBUILD) switch --flake .#$(HOST) --impure; \
sudo HOST=$(HOST) $(NIX_ALLOW_UNFREE) $(DARWIN_REBUILD) switch --flake .#$(HOST) --impure; \
elif [ -n "$(DETECTED_HOST)" ]; then \
echo "Auto-detected host: $(DETECTED_HOST)"; \
sudo $(NIX_ALLOW_UNFREE) $(DARWIN_REBUILD) switch --flake .#$(DETECTED_HOST) --impure; \
sudo HOST=$(DETECTED_HOST) $(NIX_ALLOW_UNFREE) $(DARWIN_REBUILD) switch --flake .#$(DETECTED_HOST) --impure; \
else \
sudo $(NIX_ALLOW_UNFREE) $(DARWIN_REBUILD) switch --flake .#$(NIX_SYSTEM) --impure; \
sudo HOST=$(NIX_SYSTEM) $(NIX_ALLOW_UNFREE) $(DARWIN_REBUILD) switch --flake .#$(NIX_SYSTEM) --impure; \
fi; \
elif [ "$(NIX_CONFIG_TYPE)" = "nixosConfigurations" ]; then \
sudo $(NIX_ALLOW_UNFREE) $(NIX_EXEC) run $(NIX_FLAGS) --impure nixpkgs#nixos-rebuild -- switch --flake .#$(NIX_SYSTEM); \
elif [ "$(NIX_CONFIG_TYPE)" = "homeConfigurations" ]; then \
if [ -n "$(HOST)" ]; then \
echo "Switching named home config: $(HOST)"; \
USER=$(NIX_USERNAME) $(NIX_ALLOW_UNFREE) $(NIX_EXEC) run $(NIX_FLAGS) --impure .#homeConfigurations.$(HOST).activationPackage; \
HOST=$(HOST) USER=$(NIX_USERNAME) $(NIX_ALLOW_UNFREE) $(NIX_EXEC) run $(NIX_FLAGS) --impure .#homeConfigurations.$(HOST).activationPackage; \
elif [ -n "$(DETECTED_HOST)" ]; then \
echo "Auto-detected host: $(DETECTED_HOST)"; \
USER=$(NIX_USERNAME) $(NIX_ALLOW_UNFREE) $(NIX_EXEC) run $(NIX_FLAGS) --impure .#homeConfigurations.$(DETECTED_HOST).activationPackage; \
HOST=$(DETECTED_HOST) USER=$(NIX_USERNAME) $(NIX_ALLOW_UNFREE) $(NIX_EXEC) run $(NIX_FLAGS) --impure .#homeConfigurations.$(DETECTED_HOST).activationPackage; \
else \
USER=$(NIX_USERNAME) $(NIX_ALLOW_UNFREE) $(NIX_EXEC) run $(NIX_FLAGS) --impure .#$(NIX_CONFIG_TYPE)."$(NIX_USERNAME)@$(NIX_SYSTEM)".activationPackage; \
fi; \
Expand Down
6 changes: 0 additions & 6 deletions config/claude/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,4 @@
executable = true;
force = true;
};

home.file.".claude/install-skills.sh" = {
source = ./install-skills.sh;
executable = true;
force = true;
};
}
23 changes: 0 additions & 23 deletions config/claude/install-skills.sh

This file was deleted.

4 changes: 0 additions & 4 deletions config/codex/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,3 @@ model_provider = "lmstudio"
[profiles.qwen3-coder-30b]
model = "qwen/qwen3-coder-30b"
model_provider = "lmstudio"

[profiles.kimi-k2]
model = "kimi-k2"
model_provider = "cliproxyapi"
2 changes: 2 additions & 0 deletions config/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,10 @@
./jj
./k3s
./karabiner
./llm
./opencode
./pi
./serena
./starship
./zellij
]
14 changes: 14 additions & 0 deletions config/llm/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{ config, pkgs, ... }:
{
home.file."Library/Application Support/io.datasette.llm/extra-openai-models.yaml" = {
enable = pkgs.stdenv.isDarwin;

@cubic-dev-ai cubic-dev-ai Bot Jan 17, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: home.file entries use unsupported enable option, causing Home‑Manager evaluation failure

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At config/llm/default.nix, line 4:

<comment>home.file entries use unsupported `enable` option, causing Home‑Manager evaluation failure</comment>

<file context>
@@ -1,6 +1,13 @@
+{ config, pkgs, ... }:
 {
+  home.file."Library/Application Support/io.datasette.llm/extra-openai-models.yaml" = {
+    enable = pkgs.stdenv.isDarwin;
+    source = config.lib.file.mkOutOfStoreSymlink ./extra-openai-models.yaml;
+    force = true;
</file context>
Fix with Cubic

source = config.lib.file.mkOutOfStoreSymlink ./extra-openai-models.yaml;
force = true;
};

home.file.".config/io.datasette.llm/extra-openai-models.yaml" = {
enable = pkgs.stdenv.isLinux;
source = config.lib.file.mkOutOfStoreSymlink ./extra-openai-models.yaml;
force = true;
};
}
18 changes: 18 additions & 0 deletions config/llm/extra-openai-models.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Custom OpenAI-compatible models for llm
# Uses cliproxyapi as the backend (http://localhost:8317/v1)
- model_id: cliproxyapi
model_name: claude-sonnet-4-20250514
api_base: http://localhost:8317/v1
api_key_name: cliproxyapi
- model_id: claude-sonnet
model_name: claude-sonnet-4-20250514
api_base: http://localhost:8317/v1
api_key_name: cliproxyapi
- model_id: claude-opus
model_name: claude-opus-4-20250514
api_base: http://localhost:8317/v1
api_key_name: cliproxyapi
- model_id: claude-haiku
model_name: claude-haiku-4-20250514
api_base: http://localhost:8317/v1
api_key_name: cliproxyapi
Comment on lines +3 to +18

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

Anthropic Claude model identifiers 2026 latest available models

💡 Result:

Here are Anthropic’s latest Claude model identifiers (API model IDs) as of Jan 17, 2026:

  • Claude Opus 4.1 — claude-opus-4-1-20250805 (alias: claude-opus-4-1). [1]
  • Claude Opus 4 — claude-opus-4-20250514 (alias: claude-opus-4-0 / claude-opus-4). [1][2]
  • Claude Sonnet 4 — claude-sonnet-4-20250514 (alias: claude-sonnet-4-0 / claude-sonnet-4). [1][2]
  • Older/maintained models (examples): claude-3-7-sonnet-20250219 (alias: claude-3-7-sonnet-latest), claude-3-5-sonnet-20241022, claude-3-5-haiku-20241022. Use the Models list endpoint to see models available to your account. [1][2]

Recommendation: use the full snapshot ID (e.g., claude-opus-4-1-20250805) in production for stable behavior; aliases point to the latest snapshot. [1]

Sources: Anthropic docs (Models overview & API model examples). [1][2]


Fix invalid model identifier and sort configuration keys alphabetically.

The configuration has two issues:

  1. Invalid model identifier: claude-haiku-4-20250514 is not a valid Anthropic model. The current Claude Haiku model is claude-3-5-haiku-20241022. Update the haiku entry accordingly.

  2. Keys not alphabetically sorted: Per coding guidelines, configuration keys should be sorted alphabetically. Reorder each model entry to: api_base, api_key_name, model_id, model_name.

The model identifiers for Sonnet and Opus are correct: claude-sonnet-4-20250514 and claude-opus-4-20250514 are valid Anthropic models as of January 2026.

🤖 Prompt for AI Agents
In `@config/llm/extra-openai-models.yaml` around lines 4 - 22, Update the
claude-haiku model entry to use the correct Anthropic model identifier by
replacing model_name value for the entry with model_id "claude-haiku" to
"claude-3-5-haiku-20241022"; then reorder the keys for every model block
(entries with model_id values "cliproxyapi", "claude-sonnet", "claude-opus", and
"claude-haiku") so they are alphabetically sorted as api_base, api_key_name,
model_id, model_name.

Loading
Loading