HashCortX 3.0.0 发布:自带 harness 的本地优先 AI 编程工具
Experimenting with HashCortX Lately
HashCortX 发布 3.0.0 版本,主打"harness"机制:由 HashCortx 而非模型决定模型能看到什么、可自主做什么、以及运行结束前必须证明什么,每次运行由应用本身校验而非听信模型自述。
| 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.
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.
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.
Security, stated plainly
- 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



