Skip to content

feat(nanoclaw): switch to nanocoai upstream and pnpm-based install#33

Open
ealeyner wants to merge 4 commits into
docker:mainfrom
ealeyner:update-nanoclaw-pnpm-and-upstream
Open

feat(nanoclaw): switch to nanocoai upstream and pnpm-based install#33
ealeyner wants to merge 4 commits into
docker:mainfrom
ealeyner:update-nanoclaw-pnpm-and-upstream

Conversation

@ealeyner
Copy link
Copy Markdown
Contributor

Summary

  • Track the upstream nanoclaw repo move from qwibitai/nanoclaw to nanocoai/nanoclaw.
  • Rework the install to match nanoclaw's current toolchain: Node 22 + pnpm v10, with the OneCLI post-install check requiring ~/.local/bin on PATH.
  • Boot directly into the nanoclaw service and run the setup wizard on attach (instead of dropping into Claude Code as the entrypoint).

spec.yaml

  • Clone from github.com/nanocoai/nanoclaw; install via pnpm install --network-concurrency=1.
  • Upgrade Node to v22 and install pnpm v10 globally.
  • Persist ~/.local/bin in PATH via /etc/sandbox-persistent.sh so OneCLI's post-install check works in every shell context.
  • Add allowed domains for the new install + setup paths: nodejs.org, onecli.sh, www.onecli.sh, raw.githubusercontent.com, release-assets.githubusercontent.com, ghcr.io, registry-1.docker.io, auth.docker.io, production.cloudflare.docker.com, checkpoint.prisma.io.
  • Set NODE_NO_WARNINGS=1 and ONECLI_BIND_HOST=127.0.0.1.
  • Entrypoint now starts the nanoclaw service in the background, waits for the CLI socket at data/cli.sock, then runs npm run setup:auto with NANOCLAW_SKIP=service,container.
  • Drop aiFilename: CLAUDE.md and settings.containerSettings.claude — the kit no longer uses Claude Code as the entrypoint.

README.md

  • Rewrite usage and "How auth works" sections to reflect the new entrypoint and upstream repo URL. Chat-platform adapters (WhatsApp, Telegram, Discord, Slack, …) continue to be installed via /add-<channel> skills from inside the session.

Test plan

  • sbx kit validate ./nanoclaw/ — passes
  • go test -v -count=1 -timeout 10m ./... in nanoclaw/ — all validation/policy/oauth subtests pass; the container subtest requires rootless Docker locally and is left to CI
  • CI green
  • sbx run --kit ./nanoclaw/ nanoclaw end-to-end (verify install completes, service starts, setup wizard appears on attach)

ealeyner and others added 4 commits May 9, 2026 20:48
Track the upstream nanoclaw repo move from qwibitai/nanoclaw to
nanocoai/nanoclaw, and rework the install to match the project's
current toolchain: Node 22 + pnpm v10, with the OneCLI post-install
check requiring ~/.local/bin on PATH. The kit now boots directly
into the nanoclaw service and runs the setup wizard on attach,
instead of dropping into Claude Code.

- spec.yaml: clone from github.com/nanocoai/nanoclaw, install via
  pnpm with --network-concurrency=1, upgrade Node to 22, install
  pnpm globally, persist ~/.local/bin in PATH
- spec.yaml: add allowed domains for the new install + setup paths
  (nodejs.org, onecli.sh, raw.githubusercontent.com,
  release-assets.githubusercontent.com, ghcr.io, registry-1.docker.io,
  auth.docker.io, production.cloudflare.docker.com, checkpoint.prisma.io)
- spec.yaml: NODE_NO_WARNINGS=1, ONECLI_BIND_HOST=127.0.0.1
- spec.yaml: entrypoint starts nanoclaw service, waits for the CLI
  socket, then runs setup:auto with NANOCLAW_SKIP=service,container
- spec.yaml: drop aiFilename/containerSettings.claude (kit no longer
  shells out to Claude Code as the entrypoint)
- README.md: rewrite to reflect the new entrypoint and upstream URL

Signed-off-by: Eli Aleyner <eli@aleyner.com>
Replace the local dev path (./nanoclaw12/) with the canonical
git+https kit URL so users can copy-paste the example directly.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Extend the install step to also build the nanoclaw agent container
image (./container/build.sh) so the kit is fully self-contained on
first boot. Add `set -e` so partial installs don't unblock the
entrypoint by writing .installed prematurely.

Harden the entrypoint:
- chmod the docker socket on each boot (sbx restarts dockerd, which
  resets permissions)
- tail the install log to stderr while waiting on first boot so the
  user sees progress during the 5-12 minute build
- redirect service stdout/stderr to logs/nanoclaw.log and
  logs/nanoclaw.error.log instead of a single combined log
- wait up to 60s for data/cli.sock and dump both service logs on
  timeout, so failures are diagnosable without exec'ing in

Add egress hosts needed by the container build (api.onecli.sh,
deb.debian.org, security.debian.org) and bind onecli to 0.0.0.0 with
NO_PROXY set so the agent container can reach it via
gateway.docker.internal.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Eli Aleyner <eli@aleyner.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant