Sindoq
Execute code in sandboxed environments using Docker, Podman, Wasmer, gVisor, Firecracker, Kubernetes, or cloud providers. Use when the user needs to safely run untrusted code, build AI code execution pipelines, or set up isolated sandbox environments.From its SKILL.md
npx -y skills add HappyHackingSpace/skills --skill sindoqAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
3 things to look at
- reads credentialsReads from 2 credential sources: `VERCEL_TOKEN` and 1 more.
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 1 command, including `go get github.com/happyhackingspace/sindoq`.
SKILL.md
3.2 KB, 836 tokens by cl100k_base, as published. Nobody here has run it
sindoq - AI Sandbox
sindoq (means "box" in Kurdish) is a Go SDK for sandboxed code execution. One API, any provider.
Installation
go get github.com/happyhackingspace/sindoq
Quick Start
One-liner Execution
result, err := sindoq.Execute(ctx, `print("Hello, World!")`)
fmt.Println(result.Stdout) // Hello, World!
With Specific Provider
sb, err := sindoq.Create(ctx, sindoq.WithProvider("docker"))
if err != nil {
log.Fatal(err)
}
defer sb.Stop(ctx)
result, err := sb.Execute(ctx, `console.log("Hello")`, sindoq.WithLanguage("JavaScript"))
fmt.Println(result.Stdout)
Streaming Output
sb, err := sindoq.Create(ctx, sindoq.WithProvider("docker"))
defer sb.Stop(ctx)
err = sb.ExecuteStream(ctx, code, func(e *executor.StreamEvent) error {
if e.Type == executor.StreamStdout {
fmt.Print(e.Data)
}
return nil
})
Async Execution
results, err := sb.ExecuteAsync(ctx, code)
// Do other work...
result := <-results
fmt.Println(result.Stdout)
Providers
| Provider | Type | Use Case |
|---|---|---|
docker | Local | Development, CI/CD |
podman | Local | Rootless containers |
wasmer | Local | Cross-platform WASM sandbox (Linux, macOS, Windows) |
nsjail | Local | Ultra-fast process isolation (~5ms, Linux only) |
gvisor | Local | Strong isolation, syscall filtering (Linux only) |
firecracker | Local | Maximum isolation (microVMs, Linux only) |
landlock | Local | Kernel-level sandboxing via Landlock LSM (Linux 5.13+) |
seatbelt | Local | Kernel-level sandboxing via sandbox-exec (macOS) |
kubernetes | Cloud | Scalable workloads |
vercel | Cloud | Serverless execution |
e2b | Cloud | AI code interpreter |
Provider Configuration
// Docker
sb, _ := sindoq.Create(ctx, sindoq.WithDockerConfig(sindoq.DockerConfig{
Host: "unix:///var/run/docker.sock",
}))
// Vercel
sb, _ := sindoq.Create(ctx, sindoq.WithVercelConfig(sindoq.VercelConfig{
Token: os.Getenv("VERCEL_TOKEN"),
}))
// E2B
sb, _ := sindoq.Create(ctx, sindoq.WithE2BConfig(sindoq.E2BConfig{
APIKey: os.Getenv("E2B_API_KEY"),
}))
// Wasmer (cross-platform)
sb, _ := sindoq.Create(ctx, sindoq.WithWasmerConfig(sindoq.WasmerConfig{
WasmerPath: "wasmer",
TimeLimit: 30,
}))
// Seatbelt (macOS)
sb, _ := sindoq.Create(ctx, sindoq.WithSeatbeltConfig(sindoq.SeatbeltConfig{
EnableNetwork: false,
}))
Features
- Multi-provider support: Docker, Podman, Wasmer, nsjail, gVisor, Firecracker, Landlock, Seatbelt, Kubernetes, Vercel, E2B
- Auto language detection: Automatically detects programming language from code
- Streaming output: Real-time stdout/stderr streaming
- Async execution: Non-blocking execution with channels
- Resource limits: Control CPU, memory, and execution time
- File system access: Read/write files in sandbox environments
References
- Repository: https://github.com/HappyHackingSpace/sindoq
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most containers cloud skills give in 836 tokens
Counted across 607 of the 705 authors here whose files we hold, read 2026-09-06
- Run as non-root userin 34 of 607, across 27 files
- Use multi-stage buildsin 29 of 607
- Set resource requests and limitsin 24 of 607, across 20 files
- Configure liveness and readiness probesin 18 of 607, across 14 files
- Use named volumes for persistent datain 14 of 607, across 9 files
- Pin base image versionsin 14 of 607
- Set up environment variablesin 14 of 607, across 10 files
- Pin provider versionsin 14 of 607
- Apply least privilege RBAC permissionsin 10 of 607, across 7 files
- Create a dockerignore filein 10 of 607
- Use remote state with lockingin 9 of 607
- Pin base images by digestin 9 of 607, across 8 files
Said here and by no other author read
- Run untrusted code safely
- Set up isolated sandbox environments
- Build AI code execution pipelines
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.