From 32438d1602858b53584781c00525aa6b9446598b Mon Sep 17 00:00:00 2001 From: slmagus Date: Wed, 18 Feb 2026 01:53:06 +0000 Subject: [PATCH 1/2] Add devcontainer configuration for development - Dockerfile: Node 22 base image with tmux and jq - devcontainer.json: VS Code extensions, editor settings, lifecycle hooks - post-create.sh: npm install, TypeScript build, .tinyclaw skeleton --- .devcontainer/Dockerfile | 12 ++++++++++++ .devcontainer/devcontainer.json | 26 ++++++++++++++++++++++++++ .devcontainer/post-create.sh | 27 +++++++++++++++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/devcontainer.json create mode 100755 .devcontainer/post-create.sh diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..1787832 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,12 @@ +# TinyClaw Development Container +# Based on the official devcontainer TypeScript-Node image (Debian bookworm, Bash 5+) + +FROM mcr.microsoft.com/devcontainers/typescript-node:22 + +# Install runtime tools required by tinyclaw shell scripts +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + tmux \ + jq \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..1e8dcfc --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,26 @@ +{ + "name": "TinyClaw Dev", + "build": { + "dockerfile": "Dockerfile", + "context": ".." + }, + "postCreateCommand": "bash .devcontainer/post-create.sh", + "remoteUser": "node", + "customizations": { + "vscode": { + "extensions": [ + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode", + "mads-hartmann.bash-ide-vscode" + ], + "settings": { + "editor.formatOnSave": true, + "editor.tabSize": 2, + "editor.insertSpaces": true, + "files.insertFinalNewline": true, + "files.trimTrailingWhitespace": true, + "typescript.tsdk": "node_modules/typescript/lib" + } + } + } +} \ No newline at end of file diff --git a/.devcontainer/post-create.sh b/.devcontainer/post-create.sh new file mode 100755 index 0000000..7fcf26a --- /dev/null +++ b/.devcontainer/post-create.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +# Post-create lifecycle script for the TinyClaw devcontainer. +# Runs once after the container is built to bootstrap the dev environment. + +set -euo pipefail + +echo "📦 Installing Node dependencies..." +npm install + +echo "🔨 Building TypeScript..." +npm run build + +echo "📂 Creating local .tinyclaw skeleton for development..." +mkdir -p .tinyclaw/queue/{incoming,processing,outgoing} +mkdir -p .tinyclaw/logs +mkdir -p .tinyclaw/channels +mkdir -p .tinyclaw/files +mkdir -p .tinyclaw/chats +mkdir -p .tinyclaw/events + +echo "" +echo "✅ Dev environment ready!" +echo "" +echo "Quick start:" +echo " ./tinyclaw.sh # Show usage / help" +echo " ./tinyclaw.sh setup # Run interactive setup wizard" +echo " npm run build # Recompile TypeScript" From ced1510a02ae1ef9e0f43ecd05982265049ff82c Mon Sep 17 00:00:00 2001 From: Zach Vida Date: Wed, 18 Feb 2026 03:06:48 +0000 Subject: [PATCH 2/2] add devcontainer to readme --- README.md | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 88de727..4329203 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,12 @@ git clone https://github.com/jlia0/tinyclaw.git cd tinyclaw && npm install && ./scripts/install.sh ``` +**Option 4: Advanced for Developers with Docker Installed** + +1. Git Clone in vscode +2. Command Pallet -> DevContainers: Reopen in Container +3. ./tinyclaw.sh commands or ./scripts/install.sh to install + ### First Run ```bash @@ -135,15 +141,15 @@ Commands work with `tinyclaw` (if CLI installed) or `./tinyclaw.sh` (direct scri ### Agent Commands -| Command | Description | Example | -| ------------------------------------ | -------------------------------- | ------------------------------------------------ | -| `agent list` | List all configured agents | `tinyclaw agent list` | -| `agent add` | Add new agent (interactive) | `tinyclaw agent add` | -| `agent show ` | Show agent configuration | `tinyclaw agent show coder` | -| `agent remove ` | Remove an agent | `tinyclaw agent remove coder` | -| `agent reset ` | Reset agent conversation | `tinyclaw agent reset coder` | -| `agent provider [provider]` | Show or set agent's AI provider | `tinyclaw agent provider coder anthropic` | -| `agent provider

--model `| Set agent's provider and model | `tinyclaw agent provider coder openai --model gpt-5.3-codex` | +| Command | Description | Example | +| ------------------------------------- | ------------------------------- | ------------------------------------------------------------ | +| `agent list` | List all configured agents | `tinyclaw agent list` | +| `agent add` | Add new agent (interactive) | `tinyclaw agent add` | +| `agent show ` | Show agent configuration | `tinyclaw agent show coder` | +| `agent remove ` | Remove an agent | `tinyclaw agent remove coder` | +| `agent reset ` | Reset agent conversation | `tinyclaw agent reset coder` | +| `agent provider [provider]` | Show or set agent's AI provider | `tinyclaw agent provider coder anthropic` | +| `agent provider

--model ` | Set agent's provider and model | `tinyclaw agent provider coder openai --model gpt-5.3-codex` | ### Team Commands