Give your agents a persistent world to work and think in, and minimize the friction between think and do.
Python
0
3 commits
updated Oct 5, 2026
A persistent Julia operator surface for interactive work and agent harnesses. Palette keeps bindings across calls, captures results and process output, and revives saved state after a kernel restart with an explicit report of what survived, changed, or was lost.
Palette supplies the execution surface. Harnesses such as Cyan provide the agent loop, model inference, and orchestration.
Get Palette-ChatGPT.zip or Palette-Claude.zip from the release assets
when published. Each is one uploadable plugin with SDK source and setup
instructions. Claude Desktop extensions use the separate .mcpb option. Read the client installation guide.
Linux/WSL2 preparation is required; ChatGPT Chat additionally needs your own
tunnel or hosted connection. ZIP upload alone does not start a runtime.
Import the Julia package with using Palette.
julia --project=. -e 'using Pkg; Pkg.instantiate()'
julia --project=. -e 'using Palette; execute(ExecuteCode("x = 41")); println(execute(ExecuteCode("x + 1")).result.data)'
For supervised, sandboxed sessions on Linux, install Julia 1.12, Python 3, bubblewrap, and a Rust build toolchain, then build the host:
cargo build --manifest-path runtime/host/Cargo.toml --release --locked
python3 runtime/security/prewarm_depot.py --project-dir "$PWD" --host-bin "$PWD/runtime/host/target/release/palette-host"
runtime/host/target/release/palette-host session --repo-dir "$PWD" --project-dir "$PWD" --workspace-dir /absolute/path/to/workspace --state-dir /absolute/path/to/state --ceiling '{}'
The session speaks newline-delimited JSON on stdin/stdout. After its startup
message, send {"request_id":"1","code":"x = 41"} and then
{"request_id":"2","code":"x + 1"}. Close stdin to stop it.
Keep state outside the workspace. The plain Julia API above does not create an
OS sandbox; the supervised host does.
Plugin installation · Operator API · Installation and MCP · Workspaces and patches · Authority boundaries · Static analysis policy
BRAIN_BLAST.md explains how to exploit persistent Julia state, representations, compiled helpers, provenance, and controlled experiments. Provide it as context when you want a model to start with those practices, or withhold it when evaluating unprimed exploration. It is guidance, not a required runtime dependency. You can use it as a seed for curated training examples; validate those examples and evaluate a tuned model on held-out tasks rather than assuming that fine-tuning on this prose improves performance.
| Directory | Contents |
|---|---|
src/ | Julia package and operator helpers |
runtime/ | Host, adapters, installer, worker entrypoint, public docs, and plugin package |
test/ | Julia package tests and fixtures |
The tracked root has five folders: the three SDK directories above, .github/
for CI, and .agents/ for the plugin marketplace. Public docs and the plugin
package live under runtime/docs/ and runtime/plugins/.
Rust builds Palette's host; Python supports its adapters. Additional language kernels and SDKs are provisioned by deployments, rather than bundled with Palette.
See CONTRIBUTING.md for scope, verification, and research archival.
julia --project=. -e 'using Pkg; Pkg.test()'
cargo test --manifest-path runtime/host/Cargo.toml --locked
python3 runtime/scripts/test_julia_analyzer.py
node runtime/scripts/check-test-policy.mjs
For the complete Linux process conformance gates, prepare a Julia environment with this checkout plus JSON, CSV, DataFrames, EzXML, and IJulia, then run:
python3 runtime/security/verify_operator.py --project-dir /absolute/path/to/test-env --implementation both
Internal development research and run receipts belong in the gitignored
.archive/ directory or a private external archive. Keep revisions, hashes,
attribution, and failed attempts for future research publication. Public runtime/docs/
contains supported product documentation.
CI runs package, host, Jupyter integration, workspace/patch, and process gates. The package manifest declares Julia 1.10+; supervised development and CI are tested on Julia 1.12.
Core: AGPL-3.0-only. Identified client/plugin packages and public docs: Apache-2.0. Inherited MIT notices remain preserved. See license boundaries and LICENSE.
Give your agents a persistent world to work and think in, and minimize the friction between think and do.
Python
0
3 commits
updated Oct 5, 2026
A persistent Julia operator surface for interactive work and agent harnesses. Palette keeps bindings across calls, captures results and process output, and revives saved state after a kernel restart with an explicit report of what survived, changed, or was lost.
Palette supplies the execution surface. Harnesses such as Cyan provide the agent loop, model inference, and orchestration.
Get Palette-ChatGPT.zip or Palette-Claude.zip from the release assets
when published. Each is one uploadable plugin with SDK source and setup
instructions. Claude Desktop extensions use the separate .mcpb option. Read the client installation guide.
Linux/WSL2 preparation is required; ChatGPT Chat additionally needs your own
tunnel or hosted connection. ZIP upload alone does not start a runtime.
Import the Julia package with using Palette.
julia --project=. -e 'using Pkg; Pkg.instantiate()'
julia --project=. -e 'using Palette; execute(ExecuteCode("x = 41")); println(execute(ExecuteCode("x + 1")).result.data)'
For supervised, sandboxed sessions on Linux, install Julia 1.12, Python 3, bubblewrap, and a Rust build toolchain, then build the host:
cargo build --manifest-path runtime/host/Cargo.toml --release --locked
python3 runtime/security/prewarm_depot.py --project-dir "$PWD" --host-bin "$PWD/runtime/host/target/release/palette-host"
runtime/host/target/release/palette-host session --repo-dir "$PWD" --project-dir "$PWD" --workspace-dir /absolute/path/to/workspace --state-dir /absolute/path/to/state --ceiling '{}'
The session speaks newline-delimited JSON on stdin/stdout. After its startup
message, send {"request_id":"1","code":"x = 41"} and then
{"request_id":"2","code":"x + 1"}. Close stdin to stop it.
Keep state outside the workspace. The plain Julia API above does not create an
OS sandbox; the supervised host does.
Plugin installation · Operator API · Installation and MCP · Workspaces and patches · Authority boundaries · Static analysis policy
BRAIN_BLAST.md explains how to exploit persistent Julia state, representations, compiled helpers, provenance, and controlled experiments. Provide it as context when you want a model to start with those practices, or withhold it when evaluating unprimed exploration. It is guidance, not a required runtime dependency. You can use it as a seed for curated training examples; validate those examples and evaluate a tuned model on held-out tasks rather than assuming that fine-tuning on this prose improves performance.
| Directory | Contents |
|---|---|
src/ | Julia package and operator helpers |
runtime/ | Host, adapters, installer, worker entrypoint, public docs, and plugin package |
test/ | Julia package tests and fixtures |
The tracked root has five folders: the three SDK directories above, .github/
for CI, and .agents/ for the plugin marketplace. Public docs and the plugin
package live under runtime/docs/ and runtime/plugins/.
Rust builds Palette's host; Python supports its adapters. Additional language kernels and SDKs are provisioned by deployments, rather than bundled with Palette.
See CONTRIBUTING.md for scope, verification, and research archival.
julia --project=. -e 'using Pkg; Pkg.test()'
cargo test --manifest-path runtime/host/Cargo.toml --locked
python3 runtime/scripts/test_julia_analyzer.py
node runtime/scripts/check-test-policy.mjs
For the complete Linux process conformance gates, prepare a Julia environment with this checkout plus JSON, CSV, DataFrames, EzXML, and IJulia, then run:
python3 runtime/security/verify_operator.py --project-dir /absolute/path/to/test-env --implementation both
Internal development research and run receipts belong in the gitignored
.archive/ directory or a private external archive. Keep revisions, hashes,
attribution, and failed attempts for future research publication. Public runtime/docs/
contains supported product documentation.
CI runs package, host, Jupyter integration, workspace/patch, and process gates. The package manifest declares Julia 1.10+; supervised development and CI are tested on Julia 1.12.
Core: AGPL-3.0-only. Identified client/plugin packages and public docs: Apache-2.0. Inherited MIT notices remain preserved. See license boundaries and LICENSE.