Gold is a containerized environment for working on provably correct software and more
Use VS Code in the browser in Three Easy Steps™
- Install Docker or Podman
- Run the command 1
docker run -it \ --privileged \ --name gold \ --hostname $(hostname) \ -p 1337:1337 \ ghcr.io/jhwohlgemuth/gold - Open a browser and navigate to https://localhost:1337 2
Tip
See Container Customization section for more details on how to customize the container.
🚧 UNDER CONSTRUCTION
🚧 UNDER CONSTRUCTION
Tip
See the examples directory for details on all the things you can do with Gold.
- Write, run, and debug Rocq code from within a browser-based instance of VSCode 3
- Work with modern Rust-based projects to write provably correct software
- Spin up feature-rich development environments for use from a terminal or browser-based IDE 3
- Work with WebAssembly
- Quickly and easily compare multiple languages using interative notebooks
- 🚧 UNDER CONSTRUCTION
Note
Use install_extensions to install VS Code extensions.
Note
install_extensions accepts any number of image names (see Image Design section)
Example install_extensions development python rust
The following environment variables are available to customize containers:
CODE_SERVER_CONFIG: Location of code-server server configuration file (within container)- Default:
/app/code-server/config/config.yaml
- Default:
CODE_SERVER_PORT: Port to use for code-server server- Default:
1337
- Default:
CODE_SERVER_PASSWORD: Password to use for code-server server- Default:
password
- Default:
JUPYTER_CONFIG: Location of code-server server configuration file (within container)- Default:
/root/.jupyter/jupyter_notebook_config.py
- Default:
JUPYTER_PORT: Port to use for Jupyter server- Default:
13337
- Default:
JUPYTER_PASSWORD_HASH: Password to use for Jupyter server- Default:
password
- Default:
Tip
Change environment variables with the --env parameter 4 (ex. docker run -it --env CODE_SERVER_PORT=8080 <image>)
Gold runs the Lean LSP MCP server as an s6 service alongside code-server, Jupyter, Marimo and Verdaccio (migrated from Goldsmith's mcp-lean sidecar).
- Service:
/etc/services.d/mcp-lean(config/mcp-lean/service/run—lean-lsp-mcp --transport streamable-http --host 0.0.0.0 --port 11005) - Image:
ghcr.io/jhwohlgemuth/goldnow embedslean-lsp-mcp==0.30.0viauv==0.8.22(seeDockerfile:16,42) and reusesnixpkgs.elan - Endpoint:
http://127.0.0.1:11005/mcp(publishedEXPOSE 11005:11005, in-containerhttp://127.0.0.1:11005/mcp) - Env:
LEAN_PROJECT_PATH(default~/dev→/home/nonroot/dev, must containlean-toolchain+lakefile.lean|tomlfor per-project mode),MCP_LEAN_PORT/MCP_LEAN_HOST,LEAN_LOG_LEVEL(defaultINFO) - Client config:
http://127.0.0.1:11005/mcp(seeconfig/agents/opencode.json:4andconfig/agents/codex.toml:3) - Healthcheck:
provision/healthcheck:40probeshttp://localhost:${MCP_LEAN_PORT}/mcp(non---failGET, because Streamable HTTP returns 4xx when healthy)
Run docker run -p 11005:11005 ghcr.io/jhwohlgemuth/gold and the MCP is available without an extra Compose profile.
Tip
See ARCHITECTURE.md
- Goldsmith is the independently branded agentic development environment that originated in Gold.
Tip
See CONTRIBUTING.md
--privilegedis required to use Apptainer within the container
The default code-server port can be changed with the
CODE_SERVER_PORTenvironment variable. See the Container Customization section for more details.
See code-server project