@_davideast/jules-env
v0.2.3
Published
Configure ephemeral development environments
Readme
jules-env
Configure ephemeral development environments in one command.
jules-env use dartThat's it. The runtime is installed, environment variables are set, and your shell is configured:
✔ brew install dart-sdk
Wrote ~/.jules/shellenv
export PATH="/opt/homebrew/opt/dart-sdk/bin:$PATH"
export DART_SDK="/opt/homebrew/opt/dart-sdk/libexec"Runtime configuration
jules-env follows a recipe → plan → execute model:
- Recipe — A recipe describes how to install a runtime. It probes the system (e.g.,
brew --prefix dart-sdk) but never modifies it. - Plan — The recipe produces an execution plan: shell commands to run, environment variables to set, and paths to prepend.
- Execute — The plan runs. Install steps that are already satisfied (checked via an optional
checkCmd) are skipped. State is persisted to~/.jules/shellenv.
Data recipes
Recipes can also be defined as JSON files. A data recipe is a static execution plan — no system probing, no dynamic resolution. This makes them easy to generate programmatically (e.g., by an LLM). Data recipes are validated against a Zod schema at load time. See src/recipes/ollama.json for an example.
Shell environment
After execution, ~/.jules/shellenv contains the environment your runtime needs:
export PATH="/opt/homebrew/opt/dart-sdk/bin:$PATH"
export DART_SDK="/opt/homebrew/opt/dart-sdk/libexec"Source it to activate:
source ~/.jules/shellenvThe file is appended to on subsequent runs, so multiple runtimes compose cleanly.
CLI reference
jules-env use <runtime> [options]Arguments
<runtime>— The runtime environment to setup (e.g.,dart).
Options
| Flag | Description | Default |
|------|-------------|---------|
| --version <v> | Version of the runtime to install | latest |
| --dry-run | Simulate execution — no changes are made | false |
| --preset <p> | Apply a configuration preset (if available for the runtime) | — |
| -h, --help | Display help | — |
Dry run
Preview what would happen without touching the system:
jules-env use dart --dry-runAvailable recipes
| Runtime | Recipe | Type | Description |
|---------|--------|------|-------------|
| Dart | dart | Code | Installs the Dart SDK (Homebrew on macOS, apt on Linux) |
| Ollama | ollama | Data | Installs Ollama with EmbeddingGemma model |
Installation
npm
npm install jules-envFrom source
git clone <repository_url>
cd jules-env
bun install
bun run buildDevelopment
Prerequisites
Run tests
bun testBuild
bun run build # Build both Node.js bundle and Bun binary
bun run build:node # Node.js bundle only (dist/cli.mjs)
bun run build:binary # Standalone Bun binary only (jules-env)Type check
bun run typecheckPrepublish checks
Run the full validation suite before publishing:
bun run check:allThis validates version, runs type checks, tests, builds both targets, and smoke-tests the outputs.
