initial commit

This commit is contained in:
Luna 2025-06-10 16:38:28 -03:00
commit 9e13cc4b25
18 changed files with 1241 additions and 0 deletions

40
idea.md Normal file
View file

@ -0,0 +1,40 @@
# hako project idea
a single tool (written in go) that manages docker images/containers for claude code to be in
these containers provide a sandbox so that there's less possibility of claude accidentally causing issues outside of the current working directory
proposed UI:
```sh
# builds the base hako image (debian:bookworm + node (latest lts) + npm install -g @anthropic-ai/claude-code + gcc)
# this writes to ~/.config/hako/Dockerfile.base with the defaults
# if you want to customize the base image, then edit the dockerfile and rerun `hako init`
# target image name: hako-userland
hako init
# creates a Dockerfile.go that uses FROM as the hako base image, and installs golang
# builds the relevant image: hako-userland-go
hako init go
# same for python, etc
hako init py
# then, when inside a git project (must fail outside of git), `hako up` will:
# create a container if it doesnt exist: hako-go-<folder name of the folder that contains .git>-<folder>-<folder...> (must sanitize folder names)
# - if too long, then error to the user for now
# copy the currently working directory to a folder: /workspace
# immediately drop you into a shell inside that folder: /workspace
# you can immediately go in and type `claude`
# NOTE if container is already running just drop the shell
hako up go
# get files from container /workspace into working directory, ignores .gitignore and .git to prevent RCE
hako sync
# show all running containers
hako ps
# spin down a container, spins the current directory's container if not specified
hako down [container name]
```