Workspace discovery
Read explicit byte or line ranges, walk stable paths, and run bounded literal or regular-expression search.
Typed requests for repository discovery, process execution, transactional edits, DAG parallelism, snapshots, and retrievable evidence.
ash run < .ash/task.asonash run < .ash/07-project.asonKeep full data at @7; retrieve only p/l/t
o:| a:[@7,d,0,64,p,l,t]
✓o:gSearch hitsdone
✓o:rRead windowdone
✓o:bParallel batchdone
✓o:pDigest-guarded patchdone
✓o:xRun regression testsdone
●o:|Project final evidencerunning
s:0ASH/1 separates discovery, execution, mutation, parallel work, state, and retrieval into budgeted, cancellable, auditable operations.
Read explicit byte or line ranges, walk stable paths, and run bounded literal or regular-expression search.
Launch argv directly, capture both pipes, and clean up the owned process tree after timeout or cancellation.
Protect patches with BLAKE3 preimages; commit file create, copy, move, and remove as recoverable transactions.
Run ready DAG nodes concurrently, skip failed descendants, drain independent work, and select errors by stable index.
Capture a scoped manifest snapshot and compare the same scope as a deterministic delta.
Spill beyond a fixed memory ceiling; slice, search, project, materialize, or release with typed formulas.
ASON columns, path dictionaries, and explicit reductions save tokens while references preserve the full source.
Capability negotiation, one-time permits, transaction recovery, and signed updates span three systems and six native targets.
The repository ships a reusable Agent Skill for exact ASON envelopes, operation selection, guarded edits, parallel workflows, and verification.
.agents/skills/use-ash/SKILL.mdScroll to move the terminal through each step. Every stage shows the real command, canonical request, compact result, and field-level notes.
t:1i:17o:ga{q,p,f}:TODO,[src],0u{tok,rec,ms}:256,64,30000t:3i:17s:0p[1]{i,v}:1,src/lib.rsd[2]{p,l,c,t}:1,42,7,"TODO item"1,87,3,"FIXME item"z:0r:~t:1i:19o:ra{p,m,o,n}:[src/lib.rs],1,1,80u{tok,rec,ms}:512,64,30000t:3i:19s:0p[1]{i,v}:1,src/lib.rsd[1]{p,o,n,h,t,r}:1,1,15,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,"pub mod engine;",~z:0r:~t:1i:80o:ba[2]{i,d,o,a}:1,[],g,"a{q,p,f}:\nTODO,[src],0\n"2,[1],r,"a{p,m,o,n}:\n[Cargo.toml],0,0,32\n"u{tok,rec,ms}:64,16,30000t:3i:80s:0d[2]{i,o,s,c,r}:1,g,0,0,@42,r,0,0,@5z:8r:~t:1i:23o:pa{p,h,i,o,n,v,f}:[src/lib.rs],[aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa],[0],[4],[3],[pub],0u{tok,rec,ms}:512,64,30000t:3i:23s:0p[1]{i,v}:1,src/lib.rsd[1]{p,s,h}:1,0,bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbz:0r:~t:1i:18o:xa{x,v,c,e,in,f}:cargo,[test,--locked],.,["RUST_BACKTRACE=1",-SECRET],~,0u{tok,rec,ms}:512,64,120000t:3i:18s:5d{k,c,ms,o,e,ro,re}:0,101,842,~,"cargo test --locked\nrunning 200 tests\n⋯18\nerror[E0609]: no field `missing`\n --> src/lib.rs:42:9\ncompile crate-a\nlink crate-a\n×64#2\ndetail: field unavailable\nhelp: inspect schema\n⋯24\ntest result: FAILED\nfinished",~,@12e{c,q,p,x,a}:401,0,4,~,~z:11r:~t:1i:24o:sa{p,d,m,r,f}:[.],64,0,~,0u{tok,rec,ms}:512,64,30000t:3i:24s:0p[2]{i,v}:1,Cargo.toml2,src/lib.rsd[2]{p,c,k,z,h}:1,0,0,912,bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb2,0,0,244,ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccz:8r:@9t:1i:44o:|a:[@7,d,0,64,p,l,t]u{tok,rec,ms}:256,64,30000t:3i:44s:0d[2]{p,t}:src/a.rs,TODOsrc/b.rs,FIXMEz:10r:@7Hover or focus a symbol for its note; tap to open on touch. Every operator has fixed operands and one canonical encoding.
Tokio handles processes, pipes, RPC, deadlines, and cancellation. Rayon handles search, hashing, diffs, and reduction. The governor bounds global, session, and request concurrency.
Homogeneous records use columns, paths use dictionaries, and large values remain available by reference. Stable merge keeps output deterministic.
s:0
a:search
d{p}:
0:"src/runtime.rs"
r{p,l,c}:
0,42,governor
0,88,stable_merge
z{shown,total}:
2,17A permit binds the session, action, policy, and expiry. File transactions add digest checks, a journal, and rollback.
SECURITYx86-64 and ARM64 use the same protocol. Releases verify signatures, SBOM, provenance, installation, updates, and rollback.
This is a pre-release. Cargo can build from source; release installers exit until signed binaries are available.
Read installation notesPRE-RELEASE · NO SIGNED BINARYcurl --proto '=https' --tlsv1.2 -LsSf https://raw.githubusercontent.com/A3S-Lab/ash/main/install.sh | shSigned binaries are not published yet; the installer exits before download.
Interfaces, architecture decisions, and implementation are public.