⚠️ Important Note: NanoClaw does not publish an official Docker image. Installation is via source clone with Node.js runtime. This playbook provisions the prerequisites and clones the repository for manual setup via Claude Code.
NanoClaw uses Apple Container (macOS) or Docker (Linux) for agent isolation, but the application itself runs as a Node.js process that spawns containers for each agent session.
- name: Deploy NanoClaw prerequisites
hosts: nano-claw
become: true
vars:
app_root: /opt/nano-claw
app_user: nanoclaw
repo_url: https://github.com/qwibitai/nanoclaw.git
nodejs_version: "20.x"
tasks:
- name: Install Docker on Debian/Ubuntu
apt:
name:
- docker.io
- docker-compose-plugin
- git
- nodejs
- npm
state: present
update_cache: true
when: ansible_os_family == "Debian"
- name: Install Docker on RHEL family
dnf:
name:
- docker
- docker-compose-plugin
- git
- nodejs
- npm
state: present
when: ansible_os_family == "RedHat"
- name: Enable and start Docker
service:
name: docker
state: started
enabled: true
- name: Create app user
user:
name: "{{ app_user }}"
shell: /bin/bash
create_home: true
groups: docker
append: true
- name: Clone NanoClaw repository
git:
repo: "{{ repo_url }}"
dest: "{{ app_root }}"
version: main
become_user: "{{ app_user }}"
- name: Set ownership
file:
path: "{{ app_root }}"
owner: "{{ app_user }}"
group: "{{ app_user }}"
recurse: true
- name: Install Node.js dependencies
npm:
path: "{{ app_root }}"
become_user: "{{ app_user }}"
when: false # Skip - setup is via Claude Code
- name: Display setup instructions
debug:
msg: |
NanoClaw repository cloned to {{ app_root }}
NEXT STEPS (manual):
1. SSH to the host as {{ app_user }}
2. cd {{ app_root }}
3. Run 'claude' and execute '/setup' skill
4. Configure Claude API key when prompted
5. Choose container runtime (Docker or Apple Container)
Repository: https://github.com/qwibitai/nanoclaw
Documentation: https://nanoclaw.dev
- name: Deploy NanoClaw prerequisites (macOS)
hosts: nano-claw-macos
become: false # Run as user on macOS
vars:
app_root: "~/nano-claw"
repo_url: https://github.com/qwibitai/nanoclaw.git
tasks:
- name: Check for Homebrew
command: which brew
register: brew_check
failed_when: brew_check.rc != 0
changed_when: false
- name: Install Node.js via Homebrew
community.general.homebrew:
name: node@20
state: present
- name: Clone NanoClaw repository
git:
repo: "{{ repo_url }}"
dest: "{{ app_root }}"
version: main
- name: Display setup instructions
debug:
msg: |
NanoClaw repository cloned to {{ app_root }}
NEXT STEPS:
1. cd {{ app_root }}
2. Run 'claude' and execute '/setup' skill
3. Configure Claude API key when prompted
4. Apple Container will be used automatically on macOS
Repository: https://github.com/qwibitai/nanoclaw
Documentation: https://nanoclaw.dev
No Official Docker Image: NanoClaw does not publish an official container image. The application runs as a Node.js process that spawns isolated containers for each agent session.
Claude Code Required: Setup and configuration is done via Claude Code’s /setup skill, not through environment variables or config files.
Container Runtime:
Authentication: Claude API key and messaging channel authentication are configured interactively during the /setup process.
ToS Warnings: Review WhatsApp and Anthropic Terms of Service before production use.
After running this playbook:
claude and execute /setupAny questions?
Feel free to contact us. Find all contact information on our contact page.