Repository navigation
Releases
HowlFrame v0.2.0
HowlFrame v0.2.0
What it is
HowlFrame is an experimental AI-native language and capability-governed execution runtime. Its principle is
intent is not authority: programs may compute and propose, while the runner's explicit grants decide which
effects (files, processes, network, environment, stores) can happen. HowlFrame is not an OS sandbox and is not safe
for arbitrary hostile code.
Highlights since v0.1.0
- Applications accepted against frozen requirements. Milestone 1: LedgerLens, HealthWatch and TaskFlow (CLI).
Milestone 2: TicketDesk (HTTP API with authentication, authorization and restart-safe persistence). Milestone 3:
EvidenceDesk (local full-stack service and browser UI); HowlBoard's ledger import validates input with EvidenceDesk's
ledger module. The Milestone 1 and 2 suites run in CI on every change. - Language and runtime. A numeric contract with exact int64 and float64 (
docs/reference/NUMERIC_CONTRACT.md),
modules withuse, records and JSON forms,read_stdin, HTTP request accessors, a native store, and core library
forms such as%,//,range,sort_byandpad_left. - Governed effects. Path-scoped
filesystem:read=/filesystem:write=grants,process:exec=program
allow-lists, host-scopednetwork:fetch=grants with destination checks,process:env=refusals for
execution-steering variables, Linux exec descendant containment, and VM budgets for instructions, call depth,
allocation, wall-clock time, exec output, fetch bodies and request bodies.inspect --caps,--profile governed
and--receiptreport what a program needs and what it did. - Artifacts. HFBC format 2 serializes deterministically.
howlframe interop --jsondescribes the toolchain for
other tools. - Numeric contract enforced. Float
+,-and*that overflow raisefloating-point overflowinstead of
producing+Inf,-Infor NaN; out-of-range literals failcheck;confidencerefuses non-finite answers; the VM
refuses artifacts with non-finite constants.
Breaking changes
- Artifact format 2. v0.2.0 writes HFBC format 2, which v0.1.0 rejects (
unsupported artifact version: expected 1, got 2). v0.2.0 still loads format 1 artifacts but runs them under current semantics; see Compatibility. - Capability grants are narrower. A bare
processgrant no longer authorizesexec(use
process:exec=<absolute path> [patterns]), the coarsenetworkgrant no longer authorizes outboundfetch(use
network:fetch=<host>), the model-call forms neednetwork, andprocess:env=NAMErefuses code-loading and
execution-steering names. - Numeric errors. Float overflow, NaN or infinity from
to_float, division by zero and out-of-range literals are
errors rather than values. map_getof a missing key returnsnil(it returned""in v0.1.0); test withis_nilormap_has.
Compatibility
| v0.1.0 | v0.2.0 | |
|---|---|---|
howlframe version |
HowlFrame 0.1.0, HFBC format: 1 |
HowlFrame 0.2.0, HFBC format: 2 |
| Writes | Format 1 | Format 2 |
| Reads format 1 | Yes | Decodes; behavior can differ (store_open fails closed, spawn_agent runs or fails closed depending on its form, map_get of a missing key, non-finite numerics, narrower grants) |
| Reads format 2 | Rejected | Yes |
Unreleased main builds from 2026-10-01 until this release printed HowlFrame 0.1.0 while writing format 2. Details:
docs/reference/artifact_compatibility.md. Recompile .howl sources with v0.2.0 unless an artifact must also run on
v0.1.0.
Installation
Archives are named howlframe_v0.2.0_<os>_<arch>.tar.gz (.zip for Windows) and contain one executable. Verify them
against SHA256SUMS. Full instructions: docs/installation.md.
curl -fLO https://github.com/howlcipher/howlframe/releases/download/v0.2.0/howlframe_v0.2.0_linux_amd64.tar.gz
curl -fLO https://github.com/howlcipher/howlframe/releases/download/v0.2.0/SHA256SUMS
sha256sum --check --ignore-missing SHA256SUMS
tar -xzf howlframe_v0.2.0_linux_amd64.tar.gz
./howlframe version| Platform | Status |
|---|---|
| Linux x86-64 | Built, executed, acceptance suites passed |
| Linux ARM64 | Built, executed under user-mode emulation only |
| macOS x86-64 and ARM64 | Built, not executed |
| Windows x86-64 | Built, not executed |
First program
(cli_app
(print "Hello from HowlFrame"))howlframe check hello.howl
howlframe build hello.howl
howlframe run hello.hfbcKnown limitations
- Exec containment stops runaway descendants on Linux, but a program that kills its own supervisor can leave a
detached descendant running (#216). On macOS and BSD session-escaped descendants are not contained, and on Windows
only the direct child is (#217). Run programs that needprocess:execon Linux. process:env=is a deny-list (#182); grant only the variables a program needs.- Generated Go uses Go's numeric semantics for
+,-and*(integer overflow wraps, float overflow is+Inf).
Use the standalone VM for numeric policy decisions. - Source has no exponent literals: write
1e10as digits or(to_float "1e10"). - An invalid resource limit exits with status 1 on some paths and 2 on others; either way nothing runs.
- Release binaries and artifacts are not signed. macOS and Windows binaries have not been executed in the release
evidence. - Standalone bytecode covers a defined subset of the language; Go remains the broadest backend, and Wasm is narrower.
Security non-claims
HowlFrame is a capability-governed runtime, not a sandbox. Capability checks, instruction limits and grants are
logic-level restrictions inside the host process, not an operating-system isolation boundary. It is not formally
verified and not production security infrastructure. Run untrusted code only inside external isolation such as a
container or VM. See SECURITY.md.
Verification
The release-candidate evidence (numeric correctness, compatibility, test results, security classification and the
independent review) is in docs/release-readiness/v0.2.0/.
HowlFrame v0.1.0
HowlFrame v0.1.0
What it is
HowlFrame is an experimental AI-native language and capability-bounded execution runtime.
Why it exists
The governing principle is simple: intent is not authority.
LLMs are good at producing structure but often lose time on syntax details and large rewrites. HowlFrame keeps the source grammar small and uniform so generation can be constrained and validated before runtime. Adaptive operations may reason and propose, but deterministic machinery continues to own permissions, capability grants, and approval.
Compiler/runtime pipeline
.howl
→ parser/checker
→ HFIR verification
→ bytecode compiler
→ .hfbc
→ VM
Key capabilities
The HowlFrame bytecode runtime explicitly tracks and enforces capabilities: network, filesystem, process, environment, and database.
Intent is not authority
Capabilities are denied by default. The standalone HowlFrame VM independently enforces capability and state-transition policy based on what the runner explicitly grants.
Applications proved
- Status API
- Log Analyzer
- KV CLI
- Todo CLI
- Task API
- Release Authority
- Action Executor
- Repo Analyst
Known limitations
HowlFrame is highly experimental:
- Standalone bytecode supports a defined subset of the language.
- Go remains the broadest backend.
- Wasm support is narrower.
- Not all backends have semantic parity.
- HowlFrame is not an OS/container/hypervisor sandbox.
- It is not formally verified.
- It is not production-ready security infrastructure.
- Native x86/ARM compilation is not claimed.
See the Coverage Matrix for detailed information on what is supported per backend.
Security non-claims
This is not a safe arbitrary code execution environment or a formal sandbox. It relies on internal instruction counting and capability gating, which is a logic-level restriction, not a strict isolation boundary provided by the OS.
Installation
Binaries for Linux, macOS, and Windows are attached to this release. Extract the binary and place it in your PATH.
First program
Create hello.howl:
(cli_app
(print "Hello from HowlFrame")
)Compile and run:
howlframe check hello.howl
howlframe build hello.howl
howlframe run hello.hfbc