Skip to route content
ImplementedFiled under Learn

Repository-guided start · Optional path

Use an agent to inspect Hara before choosing an example.

This is one way to navigate the repository, not the definition of learning Hara. The brief asks an agent to read the named files, distinguish implemented work from prototypes or plans, propose examples grounded in source, and provide the verification command used for the selected revision.

Which kind of example are you looking for?
Open hara-lang/hara View the sample program ↓
SourceName the files and revision used
StatusLabel implemented, prototype, or planned work
VerificationRun and report the relevant command
Repository brief / hara-lang/hara Ready to copy
github.com/hara-lang/hara public repository
Open https://github.com/hara-lang/hara.

Read README.md, GETTING_STARTED.md, AGENTS.md, and inspect core/lib/examples plus the browser Studio capability surfaces. If BUILD_WITH_HARA.md or examples/catalog.edn exists, use it as the current example catalogue.

First summarise, in plain language, what a Hara form, runtime, session, namespace, package, and capability are according to the repository. Name the files used for each definition.

Ask me one question:
“Which kind of example would you like to inspect: move, automate, inspect, transform, coordinate, or publish?”

My initial interest: find an existing example that makes something move.

Return three examples grounded in files and capabilities that exist at the selected revision. For each option include:
- the exact files and revision;
- whether it is implemented, a prototype, experimental, or planned;
- the required runtime and capabilities;
- the command that verifies or runs it.

After comparing them, recommend one and explain the technical reason for the selection. Then provide the smallest runnable version, execute its verification command where the available tools permit it, and identify one value that can be changed while preserving the session and source boundaries. Do not invent an API or claim an unverified capability.

Reference note. This Visual Language route does not call GitHub or execute Hara. It records the expected interaction and uses a local browser simulation; repository and runtime claims must be checked against their named sources.

01

Repository intelligence

Make the agent show its evidence.

The recommendation should not materialise from a generic model answer. The interface exposes what was found, what remains a gap, and which claims are merely candidates.

Repository scan model hara-lang/hara @ current main
  1. 01
    OrientREADME · GETTING_STARTED · AGENTS
    queued
  2. 02
    Find examplescore/lib/examples · runnable seams
    queued
  3. 03
    Inspect hostssession · canvas · clock · files
    queued
  4. 04
    Check cataloguestatus · run command · verification
    queued
  5. 05
    Recommendsmallest useful visible outcome
    queued
02

Outcome catalogue

Choose by what changes on screen.

Each project states its promise, runtime posture, capability boundary, first meaningful edit, and why it is a good first encounter with Hara.

Selected example Browser prototype

Hara Habitat

Run a small state map, observe its rendered scene, and change one numeric rule while the session remains identifiable.

First success
Local browser simulation
First edit
:fear-radius 42 → 70
sessioncanvasclock
Work example Recipe candidate

Work receipts

Represent a multi-step task as replayable work and checkpointed steps, then inspect its result records.

First success
Requires a local runtime
First edit
:retry-limit 2 → 4
workstoreexecutor
Runtime example Recipe candidate

Session inspector

Open a session, inspect state and events, make a source revision, and read the resulting receipt.

First success
Repository-guided local build
First edit
:observation :summary → :trace
sessioneventsfiles
03

The first living system

Hello, living world.

This is an interactive browser simulation of the proposed Habitat recipe. It demonstrates the intended interface and mutation semantics; it is not connected to a Hara evaluator in this visual-language specimen.

Hara Habitat nocturnal-garden.hal
session habitat/01 generation 1 revision 1
visual simulation
640 × 360 clock 1.20× canvas ready
A simulated nocturnal habitat. Use the controls beside the canvas to change its rules.
live state Move a rule, not a mock-up
Try the first mutation Move :fear-radius from 42 to 70.
(def world
  {:light     {:position [0.72 0.28]
               :strength 0.84}

   :rules     {:attraction   0.16
               :separation   18
               :fear-radius  42
               :night-speed  1.20}

   :creatures [{:id :moth-1 :kind :moth}
               {:id :moth-2 :kind :moth}
               {:id :bat-1  :kind :bat}]})
running 12 moths · 1 bat · 1 light Habitat visual simulation ready prototype host / no evaluator
04

The decisive moment

Change a rule. Keep the world.

The first mutation is the actual onboarding milestone. It connects natural-language intent, a precise source patch, a fenced state transition, and an outcome the user can see.

Try an agent request
01Request

“Make the moths more cautious.”

02Patch

[:rules :fear-radius]
42 → 70

03Fence

session · generation · source revision

04Observe

Moths begin evasive movement earlier.

05

From toy to tool

Reveal one capability at a time.

Habitat is not the destination. It is the smallest visible system that can graduate into persistence, durable work, external data, services, packages, and headless execution.

Next boundary01

Save snapshots

Attach a store and preserve selected world states without changing the behaviour algebra.

:store / snapshots
Durable path02

Run as work

Move clock-driven effects into explicit steps with results, retries, and inspectable receipts.

:work / checkpoint
External input03

Attach a source

Let weather, files, sensors, or another agent influence the same small world through a declared provider.

:provider / input
Distribution04

Publish a package

Turn the behaviour into a reusable namespace with verification, capability metadata, and a clear handoff.

:package / deploy
Without a syntax tour, you learned:
State is visibleThe world is inspectable data.
Capabilities are explicitCanvas and clock are host boundaries.
Changes have identityGeneration and source revision fence the result.
Programs can stay aliveThe system survives a meaningful edit.

The Hara hello world

Hello, living system.

Do not ask an agent to explain the whole language. Give it a truthful menu of things it can build, require it to make one run, and make the first change visible.