🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@m14i/sith

Package Overview
Dependencies
Maintainers
1
Versions
40
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@m14i/sith

Turn your context to the dark side. Standardize and share your OpenCode setup with a fully dockerized environment, designed for seamless collaboration and CI integration.

Source
npmnpm
Version
1.24.0
Version published
Weekly downloads
47
-53%
Maintainers
1
Weekly downloads
 
Created
Source

Sith

Sith Logo

Turn your context to the dark side.

Standardize and share your OpenCode setup with a fully dockerized environment, designed for seamless collaboration and CI integration.

Quick Start

npm install -g @m14i/sith   # Install CLI
sith --pull                  # Pull prebuilt Docker image
sith                         # Launch TUI

No Docker? Use native Nix:

sith --nix-install && sith --nix

Why?

AI coding tools are powerful in isolation. They become fragile at scale:

  • Context drift — every developer has a different CLAUDE.md, different tool versions, different configs. The AI sees a different project depending on who's running it.
  • No CI path — running opencode or claude in a pipeline requires wiring tokens, installing tools, and hoping the environment matches local.
  • Multiple tools — Claude Code and OpenCode serve different use cases (Anthropic auth vs GitHub Copilot). Switching between them shouldn't require manual setup.

Sith solves this by packaging both tools, all config, and your team's context into a single Docker image. One pull, same environment, everywhere.

ProblemSith answer
Inconsistent context across teamShared ~/.sith/ skills + CLAUDE.md, mounted at runtime
AI tools hard to run in CIPrebuilt signed image + token injection via env vars
Claude Code vs OpenCode frictionBoth available, same container, same command
"Works on my machine" buildsNix-pinned dependencies inside Docker

How?

Three modes. Pick based on your trust model, infra constraints, and whether Docker is available. The Docker path is recommended for teams and CI — native Nix is for when you want no container overhead on a machine you control.

sith --pullsith --buildsith --nix
Setup time~1 min (pull)~5–10 min (build)~2 min (first run)
ReproducibilityPinned image digestDockerfile-pinnedNix-pinned (nixos-23.11)
Trust modelGitHub Actions + CosignYour machine onlyYour machine only
SBOM included
CI/CD ready✅ drop-in⚠️ needs build step
Requires Docker
Requires Nix
Disk usage~2–3 GB (image)~2–3 GB (image)~500 MB (store)
Cold start~1–2s (container spin-up)~1–2s (container spin-up)~200ms (native)
Runtime overheadLow (Linux containers)Low (Linux containers)None
File I/O (macOS)⚠️ Slow (volume mounts)⚠️ Slow (volume mounts)✅ Native speed
File I/O (Linux)✅ Native speed✅ Native speed✅ Native speed
Memory overhead~50–100MB (Docker daemon)~50–100MB (Docker daemon)None
Works offline✅ after pull✅ after build⚠️ after store populated
macOS support✅ (amd64 + arm64)
Linux support
Windows support✅ Docker Desktop✅ Docker Desktop
Ideal forTeams, CI, daily useAir-gapped, customLocal dev, no Docker

Docker

The recommended path. One image, works locally and in CI.

Install the CLI

npm install -g @m14i/sith

Or without installing:

npx @m14i/sith@latest

Get the image

Prebuilt (recommended) — pull a signed image from GHCR:

sith --pull

Supports linux/amd64 and linux/arm64. Images are signed with cosign and include an SBOM.

Verify the signature (optional):

cosign verify \
  --certificate-identity-regexp="https://github.com/MerzoukeMansouri/sith" \
  --certificate-oidc-issuer="https://token.actions.githubusercontent.com" \
  ghcr.io/merzoukemansouri/sith:latest

Build from scratch — full control, no external trust:

sith --build

Use it

Interactive TUI — type a prompt or use slash commands:

sith
In the TUIWhat it does
Type any text + EnterStarts OpenCode with that prompt
/shellDrop into Docker shell (no AI)
/claudeSwitch active tool to Claude Code
/opencodeSwitch active tool to OpenCode
/configPull / build options
/helpShow commands
Ctrl+C / EscExit

Direct commands — skip the TUI:

sith shell                        # Raw Nix shell inside Docker (alias: sith --it)
sith opencode -p "fix the bug"    # OpenCode starts immediately with your task
sith claude -p "fix the bug"      # Claude Code starts immediately with your task

Cleanup

sith --docker-cleanup    # Remove sith Docker images (sith:latest + prebuilt GHCR image)
sith --uninstall         # Remove ~/.sith/ (skills, config, nix files)

CI / GitHub Actions

- name: Run sith
  env:
    CLAUDE_CODE_OAUTH_TOKEN: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  run: |
    docker run --rm \
      -e CLAUDE_CODE_OAUTH_TOKEN=$CLAUDE_CODE_OAUTH_TOKEN \
      -e GITHUB_TOKEN=$GITHUB_TOKEN \
      ghcr.io/merzoukemansouri/sith:latest "claude auth status"

See Authentication for how to generate the tokens.

Direct Nix

No Docker. Runs the same Nix environment natively on your machine.

sith --nix-install    # Install Nix package manager (once)
sith --nix            # Launch Nix shell directly

Or via the nix subcommand:

sith nix --install    # Install Nix
sith nix --shell      # Run Nix shell

Maintenance:

sith --nix-update       # Update Nix channels and upgrade installed packages
sith --nix-cleanup      # Remove ~/.sith/nix/ + run nix-collect-garbage -d
sith --nix-uninstall    # Fully remove Nix from system (daemon, /nix/store) — needs sudo

See doc/NIX_INSTALLATION.md for full setup guide.

Skills

Skills are AI instruction sets installed to ~/.sith/skills/ and automatically mounted into the container at runtime. They shape how Claude Code and OpenCode behave — tone, workflow, shortcuts.

sith skills    # Browse and install / uninstall skills from catalog

Installed skills are synced to ~/.sith/CLAUDE.md (Claude Code) and ~/.sith/opencode.json (OpenCode) automatically.

SkillWhat it doesAuto-loaded
cavemanUltra-compressed responses (~75% token reduction)

Skills are loaded from ~/.sith/skills/<name>/ and can be toggled individually. Community skills can be installed from any Git URL.

Authentication

Two AI providers, two token setups:

Command Reference

Command / FlagDescription
sithLaunch interactive TUI
sith shellRaw Nix shell inside Docker
sith opencode -p "<prompt>"Launch OpenCode with prompt
sith claude -p "<prompt>"Launch Claude Code with prompt
sith skillsManage skills from catalog
sith nix --installInstall Nix package manager
sith nix --shellRun Nix shell
sith --pullPull prebuilt Docker image from GHCR
sith --buildBuild Docker image from scratch
sith --itInteractive shell in Docker container
sith --nixLaunch native Nix shell (no Docker)
sith --nix-installInstall Nix package manager
sith --nix-updateUpdate Nix channels + upgrade packages
sith --nix-cleanupRemove ~/.sith/nix/ + garbage collect store
sith --nix-uninstallFully remove Nix from system (needs sudo)
sith --docker-cleanupRemove sith Docker images from local machine
sith --uninstallRemove ~/.sith/ config directory
sith --updateCheck for CLI updates

Development

pnpm install       # Install dependencies
pnpm dev           # Run in development mode (no build)
pnpm dev:build     # Build and run CLI
pnpm dev:shell     # Build and launch shell
pnpm typecheck     # Type checking
pnpm clean         # Clean build artifacts

Publishing

Automated via semantic-release and conventional commits.

PrefixEffect
feat:Minor version bump
fix:Patch version bump
BREAKING CHANGE:Major version bump
chore: docs: style:No release

Push to main → GitHub Action bumps version, generates CHANGELOG, publishes to npm.

Requirements: NPM_TOKEN secret in repository settings.

Keywords

opencode

FAQs

Package last updated on 15 Jun 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts