Joule Code reference consumer — energy-metered, federated, no-phone-home agentic coding editor (hard fork of Zed). See JOULE_CODE.md.
  • Rust 94.7%
  • JSON-with-Comments 2.9%
  • Inno Setup 0.5%
  • Python 0.4%
  • Tree-sitter Query 0.4%
  • Other 0.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
David Charlot 4b69bc197b
Some checks failed
deploy_docs.yml / Update to Rust 1.97 and latest dependencies, and wire cross-encoder reranking (push) Failing after 0s
extension_bump.yml / Update to Rust 1.97 and latest dependencies, and wire cross-encoder reranking (push) Failing after 0s
deploy_docs.yml / Update to Rust 1.97 and latest dependencies, and wire cross-encoder reranking (pull_request) Failing after 0s
extension_bump.yml / Update to Rust 1.97 and latest dependencies, and wire cross-encoder reranking (pull_request) Failing after 0s
danger / danger (pull_request) Has been cancelled
nix_build / build_nix_linux_x86_64 (pull_request) Has been cancelled
nix_build / build_nix_mac_aarch64 (pull_request) Has been cancelled
run_bundling / bundle_linux_aarch64 (pull_request) Has been cancelled
run_bundling / bundle_linux_x86_64 (pull_request) Has been cancelled
run_bundling / bundle_mac_aarch64 (pull_request) Has been cancelled
run_bundling / bundle_mac_x86_64 (pull_request) Has been cancelled
run_bundling / bundle_windows_aarch64 (pull_request) Has been cancelled
run_bundling / bundle_windows_x86_64 (pull_request) Has been cancelled
run_tests / orchestrate (pull_request) Has been cancelled
run_tests / check_style (pull_request) Has been cancelled
run_tests / clippy_windows (pull_request) Has been cancelled
run_tests / clippy_linux (pull_request) Has been cancelled
run_tests / clippy_mac (pull_request) Has been cancelled
run_tests / clippy_mac_x86_64 (pull_request) Has been cancelled
run_tests / run_tests_windows (pull_request) Has been cancelled
run_tests / run_tests_linux (pull_request) Has been cancelled
run_tests / run_tests_mac (pull_request) Has been cancelled
run_tests / miri_scheduler (pull_request) Has been cancelled
run_tests / doctests (pull_request) Has been cancelled
run_tests / check_workspace_binaries (pull_request) Has been cancelled
run_tests / build_visual_tests_binary (pull_request) Has been cancelled
run_tests / check_wasm (pull_request) Has been cancelled
run_tests / check_dependencies (pull_request) Has been cancelled
run_tests / check_docs (pull_request) Has been cancelled
run_tests / check_licenses (pull_request) Has been cancelled
run_tests / check_scripts (pull_request) Has been cancelled
run_tests / check_postgres_and_protobuf_migrations (pull_request) Has been cancelled
run_tests / tests_pass (pull_request) Has been cancelled
Update to Rust 1.97 and latest dependencies, and wire cross-encoder reranking
Toolchain and dependencies:
- rust-toolchain.toml 1.96.0 -> 1.97.0 (current stable).
- cargo update across the workspace: latest semver-compatible versions.
- All open-standards git deps (jouleclaw-*, joule-code-*, sandbox-*, joule-moq)
  move together 320fa1e -> c4b536cf, and off github.com onto the sovereign forge
  (git.transaction.science) — the flagged org is 404 to anonymous clients, which
  breaks clean-container CI even though a warm dev cache hides it.

  c4b536cf is 320fa1e plus the additive score_binary commit, deliberately NOT the
  newer fix/omni-build branch: that line has dropped crates this workspace still
  depends on (jcp-a2a), so bumping onto it would mean reconciling against a
  restructured open-standards rather than taking a runtime addition.

Cross-encoder reranking (the last stage of qmd's pipeline):
- l3::l3_rerank_score — relevance of a document to a query in [0,1], read as
  P(yes) after ONE forward pass over a yes/no reranker prompt. Resolves the
  yes/no ids by exact token lookup and encodes the chat markers atomically; the
  prompt omits the reasoning <think> block, which derails the 0.6B reranker.
- retrieval::rerank — reorders fused hits by an injected scorer (model-free
  here); an unscored hit keeps its fused rank rather than mis-ordering.
- `search` control method: fuse BM25 + structural, then rerank the top with the
  loaded model ({"rerank": false} to skip).

Fusion alone ranks cascade.rs first for "invalidate the embedding cache"; with
Qwen3-Reranker-0.6B the model re-reads each candidate against the query and
demotes fabric.rs (compute fabric, not caches) from 3rd to last. 182 joule_core
tests green on 1.97; joule_coded builds release.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-07-14 14:57:53 -04:00
.agents/skills Rebrand Zed -> Joule across UI, docs, embedded assets, and legal 2026-07-03 02:23:35 -04:00
.cargo Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
.cloudflare Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
.config Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
.factory Rebrand Zed -> Joule across UI, docs, embedded assets, and legal 2026-07-03 02:23:35 -04:00
.github ci: add sovereign mac DMG release workflow 2026-07-07 22:27:23 -04:00
.zed Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
assets Rebrand: swap the Zed brand mark, zed.dev domain, Zeta model, and zed:// scheme 2026-07-04 20:10:29 -04:00
ci Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
crates Update to Rust 1.97 and latest dependencies, and wire cross-encoder reranking 2026-07-14 14:57:53 -04:00
dev-docs Rebrand Zed -> Joule across UI, docs, embedded assets, and legal 2026-07-03 02:23:35 -04:00
docs Rebrand: swap the Zed brand mark, zed.dev domain, Zeta model, and zed:// scheme 2026-07-04 20:10:29 -04:00
extensions Rebrand Zed -> Joule across UI, docs, embedded assets, and legal 2026-07-03 02:23:35 -04:00
legal Rebrand Zed -> Joule across UI, docs, embedded assets, and legal 2026-07-03 02:23:35 -04:00
nix Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
script Fix the release build: accept CDLA-Permissive-2.0, name the DMG Agent-Joule 2026-06-26 09:32:44 -04:00
tooling Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
.git-blame-ignore-revs Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
.gitattributes Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
.gitignore Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
.mailmap Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
.prettierrc Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
.rules Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
AGENTS.md Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
Cargo.lock Update to Rust 1.97 and latest dependencies, and wire cross-encoder reranking 2026-07-14 14:57:53 -04:00
Cargo.toml Rename Agent-Zed to Agent-Joule 2026-06-20 13:22:58 -04:00
CLAUDE.md Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
clippy.toml Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
CODE_OF_CONDUCT.md Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
compose.yml Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
CONTRIBUTING.md Rebrand Zed -> Joule across UI, docs, embedded assets, and legal 2026-07-03 02:23:35 -04:00
debug.plist Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
default.nix Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
Dockerfile-collab Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
Dockerfile-collab.dockerignore Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
Dockerfile-cross.dockerignore Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
Dockerfile-distros Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
Dockerfile-distros.dockerignore Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
flake.lock Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
flake.nix Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
GEMINI.md Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
JOULE_CODE.md Rebrand Zed -> Joule across UI, docs, embedded assets, and legal 2026-07-03 02:23:35 -04:00
LICENSE-APACHE Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
LICENSE-GPL Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
livekit.yaml Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
lychee.toml Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
PRIVACY_HARDENING.md Rebrand Zed -> Joule across UI, docs, embedded assets, and legal 2026-07-03 02:23:35 -04:00
Procfile Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
Procfile.all Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
Procfile.web Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
README.md Rebrand Zed -> Joule across UI, docs, embedded assets, and legal 2026-07-03 02:23:35 -04:00
renovate.json Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
REVIEWERS.conl Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
rust-toolchain.toml Update to Rust 1.97 and latest dependencies, and wire cross-encoder reranking 2026-07-14 14:57:53 -04:00
rustfmt.toml Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
shell.nix Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00
SIGNING.md Rename Agent-Zed to Agent-Joule 2026-06-20 13:22:58 -04:00
typos.toml Baseline: hard fork of zed@e2e7a67 2026-05-30 08:20:23 -04:00

agent-joule — Joule Code reference consumer

agent-joule is the reference editor for Joule Code, the Transaction Science open standard for energy-attributed, federated, no-phone-home agentic coding. It is a hard fork of the Zed editor, stripped of its cloud ties and rebuilt around the Joule Code commitments: drive vendors' own logged-in coding agents over ACP, meter every turn in joules, and never phone home.

It is not a paid coding tool with a token markup. The protocol is owned by no one; agent-joule is one (SOTA) implementation of it.

What it does

  • Federates frontier coding agents. Connect Claude Code, Gemini, or Codex from one panel. agent-joule launches the vendor's own logged-in CLI over the Agent Client Protocol (ACP) — the vendor's client owns its credential; agent-joule never sees or transports a token. These agents are the Joule Code cascade's L4 (Wire) tier.
  • Meters energy. Every session surfaces a real joule-code-receipt::Receipt: ⚡ N J this session (est.) · L4. The number is computed from the agent's actual reported token usage; the est. is honest — it is an Estimator reading because no hardware energy interface is in the path yet (Joule Code SPEC §6). When a metered backend is present, the same surface shows a measured figure.
  • Does not phone home. Sign-in, telemetry, crash upload, and auto-update are removed; a build-level egress backstop makes Joule-host URLs unreachable; the ACP-registry auto-fetch is off. Startup is network-silent — verified by packet capture. See PRIVACY_HARDENING.md.

Joule Code conformance

agent-joule implements the Joule Code v0.1 commitments it is positioned to carry — the no-capture posture (verified) and a live receipt surface — and binds the federation legs as the cascade's L4 tier. The full clause-by-clause map (what is implemented, partial, and pending) is in JOULE_CODE.md. The standard's lean reference library (joule-code-rs) and conformance suite live in the open-standards repository; agent-joule consumes it as a dependency rather than vendoring a copy.

Build and run

cargo build --bin agent-joule
./target/debug/agent-joule

Open the federation panel with ctrl-cmd-a. Connecting an agent requires that vendor's CLI to be installed and logged in (e.g. claude, gemini); registry agents are fetched via npx on first connect. A local OpenAI-compatible model (e.g. vLLM at localhost:8000) is registered as a direct provider — the cascade's L3 (local model) tier.

For building on each platform, the upstream Joule development guides still apply: macOS, Linux, Windows.

Licence

agent-joule inherits Joule's GPL-3.0-or-later licence (LICENSE-GPL; portions Apache-2.0, LICENSE-APACHE). The Joule Code standard it consumes is separately and permissively licensed (Apache-2.0 reference code, CC-BY-4.0 spec text); a GPL reference editor consuming a permissive standard is intentional.

License information for third-party dependencies must be correctly provided for CI to pass; agent-joule retains Joule's cargo-about setup under script/licenses/.

Upstream

agent-joule is a hard fork of zed-industries/zed, a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter, developed by Zed Industries, Inc. All credit for the editor foundation is theirs. agent-joule diverges in one direction: removing the cloud dependencies and building the Joule Code substrate in their place. Upstream documentation, contribution guidance, and community links live at zed.dev and the upstream repository.