跳到正文
Hacker News· New_Hash·· 9 天前AI 评分38

HashCortX 3.0.0 发布:自带 harness 的本地优先 AI 编程工具

Experimenting with HashCortX Lately

AI 导读

HashCortX 发布 3.0.0 版本,主打"harness"机制:由 HashCortx 而非模型决定模型能看到什么、可自主做什么、以及运行结束前必须证明什么,每次运行由应用本身校验而非听信模型自述。

正文 · 原文

HashCortx 3.0 on opening: the app mark, and a start-up list for the runtime, model routing, the interface, the agents and the content security policy

Nothing phones home No analytics, no crash reports, no update checks. Every connection is for work you asked for, and SECURITY.md lists each address.
Every model, side by side Eleven cloud providers, Ollama, and any local model app that speaks the common chat format, with your own keys. Fully local whenever you want.
An agent that asks first Commands, deletions, web pages and anything outside your project wait for your yes. Every file change is a diff you can keep or undo.
Readable to the last line MIT. Vanilla JavaScript and Rust, no bundler, no minified app code.

Version 3.0.0, the harness release. HashCoder now proves and checks its own work, fitted to the model it runs on. What is new.

See it run

Eight workspaces

Chats Every provider in one conversation, with projects, attachments, memory and a local knowledge base
HashCoder A coding agent on your real project: file tree, diffs, terminal, Undo
Agent Swarm Teams of agents on any mix of models, built on a canvas or designed from your task
3D Forge Describe a part, get a dimensioned solid. STL, OBJ, 3MF and STEP, in millimetres
ERP Describe your business; its agent builds a working app with records, stages and books, exported as one HTML file
Finance Statements, CSV, PDF and XLSX read into figures, every total and chart worked out by the app
Sandbox Agents that inspect untrusted code for malware, prompt injection and suspicious logic
Virtual OS A simulated desktop an agent builds a project inside

Plus Agents, nine built-in specialists and a builder for your own, Split, one prompt answered by two models side by side, and Connections: a business system you connect over MCP (Odoo, GitHub, Stripe and Supabase are ready-made), whose key never reaches a page or a model and whose every change asks you first. How.

HashCoder and its harness

It works on your real files. Every edit is a diff with Keep and Undo, tests run in the built-in terminal, and screenshots, PDFs and files attach by paste or drop. Around the model sits a harness: what the model is shown, what it may do without asking, and what it has to prove before a run may end are decided by HashCortx, not by the model.

The HashCoder harness: it reads the project, plans ask by ask, edits under your permission mode, proves the change with your tests, takes a second look at larger changes, and sends itself back until the work is proven. Small models get light mode, mid-sized models focused tools, larger and cloud models the full harness.

Every run is checked by the app, not by the model's word. It reads the project, its notes for agents and its latest commits; plans your request ask by ask; edits as diffs you keep or undo, under your permission mode; proves the change by running your tests and reading a site the way a browser does; takes a second look at larger changes as a reviewer; and sends itself back for missed asks, leftovers and unsourced details, until the work is proven. It is fitted to the model: under 5B, light mode, where the model writes whole files and HashCortx does the tool work and runs the tests; 5B to 15B, focused tools with the steps written out and a plan for longer requests; 15B and up, and cloud models, the full harness, with a map of your code, lessons per project and a reviewer for larger changes.

  • Proves its work. It runs your tests after a change, reads a website the way a browser would before calling it done, and sends itself back for what it left unfinished: a renamed name still written somewhere, files that do not load each other, the example your request gave.
  • Fits the model. Cloud models get a map of your code; small local models get a light mode that writes whole files while HashCoder does the tool work.
  • Keeps what you did not ask to change. An edit that drops a function, a section or a heading is sent back, and what you say to leave alone is left alone.
  • Asks as much as you choose. Manual asks before every change and is where it starts; Accept edits writes project files freely; Auto adds a fixed list of read, search and check commands.

HashCoder: a run on a local model that added validation to a route, shown as a diff with Keep and Undo, with the passing test run said under the answer

Agent Swarm

Build a team on a canvas, start from a template, or describe the task and have one designed, sized to the job. Watch every agent in the live trace, then open the result: each agent's part, the files it made and every version of them. Agents that did not finish can be run again on their own. A website a team builds can show real, openly licensed photographs, credited on the page.

Agent Swarm: a four-agent team mid-run on a canvas, with the live trace below

Security, stated plainly

HashCoder asking permission to run npm test in the project, with Deny, Allow for session and Allow once

  • You approve what matters, and every decision is written to ~/.hashcortx/audit.log.
  • A blocklist compiled into Rust refuses keys, credentials and system folders, as files or inside commands.
  • On macOS, agent commands run in the system sandbox, kept out of your keys, keychains, shell start-up files and the app's own data.
  • A task on a local model stays local, and cloud requests are capped at 30 a minute and 6 at once.
  • What it is not: keys are stored unencrypted, protected by your user account, and the build is not code-signed.

Everything it does, and does not, is in SECURITY.md.

Install

macOS (Apple Silicon). Download the DMG from the latest release and drag HashCortx to Applications. The build is not notarised: on first launch, right-click the app, choose Open, then Open again. If macOS still refuses:

xattr -dr com.apple.quarantine /Applications/HashCortx.app

Windows. Run the installer from the latest release. It is built without the embedding model, so it starts on any 64-bit PC and searches the knowledge base by keyword.

Linux and Intel Macs. Build from source, below.

Then open Settings → API keys, add a key and press Test, or run a model on your own machine with Settings → Local model.

Build from source

cd ~
git clone https://github.com/Hash-7777/HashCortX.git
cd HashCortX
npm install
npm run tauri dev      # develop
npm run tauri build    # package

Needs Node 18+ and Rust via rustup, plus macOS: Xcode Command Line Tools · Linux: Ubuntu 24.04+ with the Tauri v2 system libraries · Windows: MSVC build tools and WebView2.

On Windows, run cd ~ first. An administrator PowerShell starts in C:\Windows\System32, and a checkout there fails to bundle with a misleading "file not found".

On Windows, allow the app in Ollama. The app's page comes from http://tauri.localhost, which Ollama refuses until it is allowed. Run setx OLLAMA_ORIGINS "http://tauri.localhost" and reopen Ollama; until then the app says that the local model app refused it.

Older x86-64 processors (without AVX2). The default build links an ONNX Runtime that needs AVX2 and BMI2 (Intel Haswell, AMD Excavator and newer); an app built with it closes before a window appears on an older processor. Building on such a processor stops with a message that says so, early in the build, before the app itself is compiled. Build without the embedding model instead, and search falls back to keywords:

npx tauri build -- --no-default-features
npm run tauri dev -- -- --no-default-features     # and to develop
cargo test --manifest-path src-tauri/Cargo.toml --no-default-features     # and to test

Before a pull request, run what CI runs on Linux, macOS and Windows:

npm run check                                     # 10,189 source checks
cargo test --manifest-path src-tauri/Cargo.toml   # 223 Rust tests

Tauri v2 · Rust · vanilla JavaScript with no bundler, served as written. Architecture · Security · Contributing · Changelog

FAQ

Is it free? Yes. MIT, no paid tier. You pay your AI providers directly, or nothing with a local model.

Does it work offline? Yes, with Ollama or another local model app. Web search, cloud models and the Python sandbox's first start need the internet.

Which systems? macOS on Apple Silicon, built and used daily. Windows 10, tested. Linux builds and passes CI, but has not been run by anyone yet.

Does my code leave my machine? Only inside a request to the model you chose. There is no HashCortx server.

Are my keys encrypted? No. They sit in the app's own folder, protected by your user account. Why.

Was it built with AI? Yes, with AI coding models under human architecture, review and correction. Every product and security decision is the author's.

More in the Wiki.

Shortcut Action
Cmd/Ctrl + Shift + C Open or leave HashCoder
Cmd/Ctrl + Shift + N New chat
Cmd/Ctrl + K Model picker

The Hash ecosystem

App What it is Licence
HashCortx (you are here) The local-first AI workspace MIT
HashCerebrum Medical research workbench with a 3D brain interface AGPL-3.0
HashMeterAi An honest local meter for your AI usage Apache-2.0
HashNotch Turns the MacBook notch into a live activity island GPL-3.0

They connect through files on your disk, not a service: HashCortx records token counts in ~/.hashcortx/usage.jsonl for HashMeterAi, and posts a short "finished" notice, a title and never a prompt or an answer, for HashNotch.

来源:Hacker News · github.com