Skip to content

ai-clis feature: codeRabbit and qmd fail to install on arm64 (Ubuntu Noble) #2

Description

@pofallon

Summary

Two tools in the ai-clis feature fail to install when building a devcontainer on arm64 (Apple Silicon / OrbStack) with Ubuntu Noble as the base image. The feature uses set -e, so either failure aborts the entire feature install.

Failures

1. codeRabbit — installer exits non-zero on arm64

The CodeRabbit installer (curl -fsSL https://cli.coderabbit.ai/install.sh | ... sh) prints [SUCCESS] Installation complete but returns a non-zero exit code on arm64. With set -e, this immediately kills the feature script.

Log excerpt:

[INFO] Platform: linux-arm64
[INFO] Downloading CodeRabbit CLI...
[INFO] Installing to /usr/local/bin/coderabbit
[SUCCESS] Installation verified
[SUCCESS] Installation complete
ERROR: Feature "AI CLI Tools" failed to install!  ← exit code: 2

2. qmd — node-gyp native build fails (Python shlex missing)

npm install -g @tobilu/qmd requires building native modules (tree-sitter-javascript) via node-gyp. The build fails because Python cannot import shlex, which is a standard library module — suggesting the Python runtime in the container is broken or sandboxed in a way that breaks gyp.

Log excerpt:

npm error ModuleNotFoundError: No module named 'shlex'
npm error gyp ERR! configure error
npm error gyp ERR! stack Error: `gyp` failed with exit code: 1
npm error gyp ERR! cwd .../node_modules/@tobilu/qmd/node_modules/tree-sitter-javascript

Environment

  • Host: macOS (Apple Silicon, arm64)
  • Container runtime: OrbStack
  • Base image: mcr.microsoft.com/devcontainers/base:ubuntu (Ubuntu 24.04 Noble)
  • Node version: 22.22.3 (via devcontainers/features/node:1)
  • ai-clis feature version: 2.0.6

Workaround

Adding "omit": "codeRabbit,qmd" to the feature options in devcontainer.json allows the build to succeed.

Suggested Fixes

  • codeRabbit: Investigate whether the CodeRabbit installer's arm64 path has an issue, or wrap the install in || true to make it non-fatal.
  • qmd: Either skip native-module packages that require gyp, or ensure python3 is properly available (with standard library intact) before the npm install. Alternatively consider wrapping with || echo "Warning: qmd installation failed" similar to how Claude Code is handled.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions