Create a lineage or extend an agent through a trusted boundary.
Genesis v0.2.0 · Enoch v0.4.0 reference body
Genesis is the OurArk creation and composition engine. It creates a new local
agent repository from an existing Genesis-compatible ancestor, or scaffolds a
bounded capability for an existing Enoch runtime. By default, descendants and
extensions target the public our-ark/enoch body.
In practical terms, Genesis gives AI Builders a way to create, own, and evolve local agent lineages.
Genesis implements the recursive-descent and inherited-validation mechanisms
described in Code Is the Body: Agent-Owned Software Bodies for Recursive
Evolution and Descent. The paper's frozen
snapshot uses Genesis
v0.1.1 at commit
e7bb896,
together with Enoch
v0.3.1.
Current Genesis development includes capabilities added after that snapshot. Use current release documentation for current behavior and the frozen releases when reproducing the paper. The OurArk research notes record the evaluated artifacts, citation, terminology, and reproduction steps.
Genesis creates a standalone local agent repo.
That repo becomes the agent's body: its runtime, tools, memory interfaces, tests, workflows, and evolution path.
Genesis also creates independently packaged AgentExtensions that add bounded domain capabilities while preserving Enoch as the single runtime and lifecycle owner.
| Operation | Result | Use when |
|---|---|---|
genesis create | A new independently versioned descendant body | Identity, mission, and the inherited body should evolve together |
genesis extend | A composable AgentExtension package | A bounded capability should reuse an existing Enoch runtime |
python3 -m pip install -e .
genesis create my-agent \
--from enoch \
--source ../enoch \
--ref HEAD \
--mission "Help me run my local AI-native workflow." \
--repo ../my-agentThen run the generated agent:
cd ../my-agent
bin/myagentEnoch is the public reference body. Your new repository is an independently versioned descendant with fresh private state.
Create a composable capability without copying the Enoch body:
genesis extend research \
--repo ../research-extension \
--description "research a bounded question" \
--command research \
--help-heading "Research"The generated package is pinned to Enoch v0.4.0 and includes its
our_ark.extensions entry point, provenance manifest, governed command
handler, and Enoch conformance test.
Most AI agents today are stateless clones: the same hidden body wrapped in different prompts, personas, and API calls.
They do not truly belong to the human who uses them.
They do not accumulate a unique life through their own code.
Genesis starts from a different belief:
AI Native is not humans using AI. AI Native is humans and AI co-evolving.
Genesis compiles a human's intent into a local agent codebase.
That codebase is the agent's body, genome, memory surface, immune system, and evolutionary history.
From there, the agent can adapt to its human, its habitat, and its work.
A Genesis-created agent is a standalone local repository with:
- its own agent identity
- its own launcher
- its own mission
- inherited code from an ancestor
- local tools and workflows
- memory interfaces
- tests and validation hooks
- an evolution path through Git
Genesis does not create a disposable prompt wrapper.
It creates the starting point of an agent lineage.
OurArk keeps source bodies and the creation engine separate:
our-ark/genesis
public creation engine
no bundled agent body inside
shows how OurArk creates local agent lineages
our-ark/enoch
public reference body
a reference agent repo with its own body and lifecycle
the default source for new descendants
another compatible body
an optional public or private source
selected explicitly with --from and --source
Genesis creates descendants from existing agents.
Enoch is a reference source, not a platform-owned runtime or a required future base. Builders can descend from another compatible public or private body by selecting it explicitly.
The goal is not one agent for humanity.
The goal is millions of evolving agents, each shaped by the judgment, values, and direction of their Builder.
This is how Builders become AI Native.
This is how co-evolution begins.
Genesis and Enoch provide a reproducible public path. Private lineages can use the same creation mechanism without publishing their source bodies, state, or history.
Credentials, memories, logs, chat identifiers, and instance state are not body
content and must not appear in genesis.toml.
Requirements:
- Python 3.11, 3.12, 3.13, or 3.14
- Git
Clone the public repositories next to each other and install Genesis:
git clone https://github.com/our-ark/genesis.git
git clone https://github.com/our-ark/enoch.git
cd genesis
python3 -m pip install -e .Inspect the exact clean source before birth:
genesis inspect-source \
--from enoch \
--source ../enoch \
--ref HEADThen create a local descendant:
genesis create my-agent \
--from enoch \
--source ../enoch \
--ref HEAD \
--mission "Help me run my local AI-native workflow." \
--repo ../my-agentThe generated agent is a standalone repo with its own launcher:
cd ../my-agent
bin/myagentDuring development, Genesis prefers a local adjacent Enoch repo at ../enoch.
You can also point Genesis at any compatible agent repo. A remote source must be inspected first, then pinned to a full commit SHA and explicitly trusted because its inherited validation executes local code. Tags are convenient for inspection, but remote creation rejects them because tags can move:
genesis inspect-source \
--from enoch \
--source https://github.com/our-ark/enoch.git \
--ref v0.4.0
genesis create my-agent \
--from enoch \
--mission "Help me run my local AI-native workflow." \
--repo ../my-agent \
--source https://github.com/our-ark/enoch.git \
--ref 9f95fc2c9a4b1c3c8d4cf282e32ac8a8b9318cd7 \
--trust-sourceinspect-source reports the materialized checkout, resolved commit, every
tracked body file, inherited validation command, and pinned runtime
dependencies. Remote checkouts are stored in the user cache directory, not
inside the installed package. Set GENESIS_CACHE_DIR to choose a different
writable cache location.
The source must contain exactly one tracked identity under src/. Current
source bodies declare a genesis.toml body contract, and Genesis copies only
the manifest's Git-tracked UTF-8 paths. A private legacy body without a
manifest can still be used through the narrower convention-based compatibility
path; its new descendant receives an explicit manifest at birth. Ignored or
untracked artifacts such as credentials, memories, logs, instance state, and
bytecode caches are never part of descent.
Before accepting birth, Genesis runs the inherited validation against a staging
repository. A failed transformation, dirty validation, or failed test leaves the
final target untouched. Successful birth produces an independently versioned
repository and records the full parent-at-birth and descendant-birth commits in
.agent/lineage.yaml.
genesis extend scaffolds an independently installable package for Enoch's
public AgentExtension API. It does not copy Enoch, select providers, create a
second queue, or take over polling and delivery.
genesis extend project-manager \
--repo ../project-manager \
--description "manage project graphs and work contracts" \
--command project \
--help-heading "Communication & collaboration"The target must be absent or empty. Genesis writes the package transactionally and produces:
project-manager/
├── agent-extension.toml
├── pyproject.toml
├── README.md
├── src/project_manager/extension.py
└── tests/test_project_manager_extension.py
agent-extension.toml records AgentExtension API version 1 and the immutable
Enoch host commit. pyproject.toml publishes the factory through the
our_ark.extensions entry-point group. The generated conformance test uses
Enoch's public AgentExtensionConformanceMixin.
Preview without writing:
genesis extend project-manager \
--repo ../project-manager \
--description "manage project graphs and work contracts" \
--dry-runGenesis v0.2.0 defaults to the Enoch v0.4.0 release commit. Advanced users may
select a later compatible Enoch body with --enoch-ref, but the value must be
a complete immutable commit SHA:
genesis extend project-manager \
--repo ../project-manager \
--description "manage project graphs and work contracts" \
--enoch-ref 9f95fc2c9a4b1c3c8d4cf282e32ac8a8b9318cd7Install the generated package in Enoch's environment and select the extension
through private instance configuration or ENOCH_EXTENSIONS. Extension
packages are trusted Python code, not sandbox boundaries, and should be
reviewed before installation.
genesis.toml declares the compatibility boundary:
schema_version = 1package = "enoch"body_paths = [
".gitignore",
"LICENSE",
"bin",
"pyproject.toml",
"src/enoch",
"tests",
]
validation = ["-m", "unittest", "discover", "-s", "tests"]
[[runtime_dependencies]]
name = "telegram-vision"requirement = "our-ark-telegram-vision @ git+https://github.com/our-ark/enoch.git@6d894d9beb882af7e5f57900b2323361510262de#subdirectory=libraries/telegram-vision"import_name = "our_ark_telegram_vision"local_source = "libraries/telegram-vision/src"optional = trueThe validation array contains arguments passed to the active Python
interpreter. It is inherited and identity-transformed with the rest of the body.
Manifest paths cannot include .git, .agent, or parent-relative paths.
Reusable skill implementations can live in a public ancestor repository outside
body_paths and be declared with [[runtime_dependencies]]. Genesis copies the
skill metadata, tests, and agent-specific adapter, but not the library source.
The descendant keeps the exact dependency reference and installs it into its
private runtime state when needed. VCS dependencies must use a full commit SHA;
ordinary package dependencies must use an exact == version. local_source
lets the owning repository validate its local library without publishing or
installing it first, and must remain outside every inherited body path.
For v1, the code identity is canonicalized to one alphanumeric token so package,
symbol, and environment-marker forms remain case-only transformations. For
example, my-agent becomes identity Myagent, package myagent, and launcher
bin/myagent; the repository path may still contain separators.
Preview permanent deletion first:
genesis recycle --repo ../my-agent --dry-run
genesis recycle --repo ../my-agent --yesRecycle requires explicit confirmation and validates the marker, Git root, lineage metadata, and canonical identity before deleting. It never deletes a GitHub remote.
- Run the public tests:
python -m unittest discover -s tests -v - Run the Genesis × Enoch gate:
python scripts/verify_enoch_descent.py --source ../enoch --ref HEAD - Read CONTRIBUTING.md before proposing a change.
- Report vulnerabilities through the process in SECURITY.md.
- Complete the OSS release checklist before publishing a release.
OurArk treats a versioned repository as the agent's identity-bearing software body, distinct from private instance state and a replaceable reasoner. The human custodian retains authority over mission, permissions, deployment, and promotion.
Genesis implements the descent boundary: it resolves a trusted source body, copies its declared body rather than private state, transforms identity and mission, runs inherited validation, and records immutable birth provenance in an independent repository. The paper is the canonical explanation of the broader architecture; this README documents Genesis-specific commands and contracts.
Genesis is the creation tool.
Enoch is the public reference body. Earlier or private Ark bodies are optional sources, not dependencies of Genesis.
Genesis creates new local descendants from an existing Genesis-style agent repo, then steps away.
The descendant becomes its own agent.
Its future belongs to its Builder.
You are not deploying a tool.
You are planting a digital seed.
Genesis gives that seed a body, a memory surface, an immune system, and a path to grow with you.
Build your agent.
Evolve yourself.
Become AI Native.
Cite Code Is the Body when referring to the OurArk architecture. When reporting experiments or implementation results, also cite the exact Genesis release using CITATION.cff.
Genesis is licensed under the Apache License 2.0.