Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ jobs:
driver: docker

- name: Build images
run: task build
run: task image:build
env:
USER_NAME: runner
USER_UID: 1001
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ package.local.json
pyproject.local.toml
uv.lock
Vagrantfile.local
opencode-local.json
5 changes: 2 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,8 @@ COPY entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod +x /usr/local/bin/entrypoint.sh

ENV TINI_VERSION=v0.19.0
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-arm64 /tini
RUN chmod +x /tini
RUN curl -fsSL https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-$(dpkg --print-architecture) -o /tini && \
chmod +x /tini


# Create non-root user matching host user (uid 501, gid 20)
Expand Down Expand Up @@ -156,7 +156,6 @@ ENV PATH="${ASDF_DIR}/bin:${ASDF_DIR}/shims:${PATH}"
RUN git clone https://github.com/asdf-vm/asdf.git ${ASDF_DIR} --branch ${ASDF_VERSION} && \
echo "legacy_version_file = yes" > /opt/home/.asdfrc


# Install asdf plugins
RUN asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git && \
asdf plugin add golang https://github.com/asdf-community/asdf-golang.git && \
Expand Down
22 changes: 20 additions & 2 deletions Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ vars:

RUN: "{{.COMPOSE}} run --service-ports --name cell-{{.APP_NAME}}-run --remove-orphans {{.DOCKER_ARGS}} -it cell"
CLAUDE: "{{.RUN}} claude --dangerously-skip-permissions"
CODEX: "{{.RUN}} codex --dangerously-bypass-approvals-and-sandbox"
CODEX: "{{.RUN}} codex --dangerously-bypass-approvals-and-sandbox --oss -p lms"
OPENCODE: "{{.RUN}} opencode --dangerously-bypass-approvals-and-sandbox"
SHELL: "{{.RUN}} bash"

CELL_HOME: '{{.HOME}}/.devcell/{{ env "TMUX_SESSION_NAME" | default "sandbox"}}'
Expand Down Expand Up @@ -86,6 +87,23 @@ tasks:
cmds:
- "{{.CODEX}} resume {{.CLI_ARGS}}"

opencode:
desc: Run OpenCode CLI in the dev container
silent: true
cmds:
- |
echo "APP_NAME: {{.APP_NAME}}"
echo "PORT_PREFIX: {{.PORT_PREFIX}}"

- "{{.OPENCODE}} {{.CLI_ARGS}}"

opencode:resume:
desc: Run OpenCode CLI in the dev container in resume
silent: true

cmds:
- "{{.OPENCODE}} resume {{.CLI_ARGS}}"


shell:
desc: Run Claude CLI in the dev container
Expand All @@ -103,7 +121,7 @@ tasks:
echo "APP_NAME: {{.APP_NAME}}"
- "{{.COMPOSE}} {{.CLI_ARGS}}"

build:
image:build:
desc: Build images (use -- --no-cache to force full rebuild)
silent: true
cmds:
Expand Down
1 change: 1 addition & 0 deletions compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ services:
# User Options, set in .env
DEVCELL_GUI_ENABLED: ${DEVCELL_GUI_ENABLED:-true}
DEVCELL_NIX_ENABLED: ${DEVCELL_NIX_ENABLED:-true}
DEVCELL_KICAD_ENABLED: ${DEVCELL_KICAD_ENABLED:-false}
group_add:
- "0" # Docker MacOS passthrough

Expand Down
2 changes: 1 addition & 1 deletion entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
OPT_HOME="/opt/home"

# Copy individual dotfiles from /opt/home if they don't exist in $HOME
for file in .asdfrc .bashrc .profile .zshrc .tool-versions; do
for file in .asdfrc .bashrc .profile .zshrc .tool-versions opencode.json; do
if [ -f "$OPT_HOME/$file" ] && [ ! -f "$HOME/$file" ]; then
echo "Copying $file to ~/"
cp "$OPT_HOME/$file" "$HOME/$file"
Expand Down
4 changes: 4 additions & 0 deletions home/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Home Files

This directory will be recursively copied over a mount in ~/home/USER
TBD
20 changes: 20 additions & 0 deletions opencode.example.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"lmstudio": {
"npm": "@ai-sdk/openai-compatible",
"name": "LM Studio (local)",
"options": {
"baseURL": "http://127.0.0.1:1234/v1"
},
"models": {
"google/gemma-3n-e4b": {
"name": "Gemma 3n-e4b (local)"
},
"zai-org_glm-4.7-flash": {
"name": "GLM-4.7 (local)"
}
}
}
}
}
Loading
Loading