AI17Z: an open-source, local-first platform for persistent autonomous AI agents.
  • TypeScript 92.4%
  • Shell 3.7%
  • PowerShell 3%
  • Inno Setup 0.4%
  • JavaScript 0.2%
  • Other 0.1%
Find a file
ShiftAboveCtrl 1e6c092557
Some checks are pending
check / check (push) Waiting to run
check / secret-scan (push) Waiting to run
Accounts on AI17Z Code are by invitation for now, and CONTRIBUTING says so
Reading, cloning and downloading still need none. The owner decided on
2026-10-21 not to open sign-ups while there is no community to look after;
a vulnerability is reported privately at ai17z.io/security/report.
2026-10-21 03:24:38 -05:00
.forgejo Mac and arm64 Ubuntu packages are assembled on Linux and proved against natively built ones 2026-10-20 22:31:31 -05:00
apps AI17Z lives on AI17Z Code, its own Forgejo, and needs no other host to install or update 2026-10-20 08:58:48 -05:00
docker upstream: the runtime a capability reads the outside world through 2026-09-10 08:25:37 -05:00
docs Mac and arm64 Ubuntu packages are assembled on Linux and proved against natively built ones 2026-10-20 22:31:31 -05:00
migrations The owner writes an agent's trading mandate, and may let it trade any Solana token within it 2026-10-15 00:30:51 -05:00
packages Mac and arm64 Ubuntu packages are assembled on Linux and proved against natively built ones 2026-10-20 22:31:31 -05:00
packaging Mac and arm64 Ubuntu packages are assembled on Linux and proved against natively built ones 2026-10-20 22:31:31 -05:00
scripts AI17Z lives on AI17Z Code, its own Forgejo, and needs no other host to install or update 2026-10-20 08:58:48 -05:00
tests Mac and arm64 Ubuntu packages are assembled on Linux and proved against natively built ones 2026-10-20 22:31:31 -05:00
tools Mac and arm64 Ubuntu packages are assembled on Linux and proved against natively built ones 2026-10-20 22:31:31 -05:00
.dockerignore docker + docs: the whole stack comes up with one command 2026-08-24 05:15:59 -05:00
.env.example Link a wallet and review a purchase against the chain from inside AI17Z 2026-09-28 01:22:20 -05:00
.gitattributes runtime: durable pipeline, model gateway, memory, channels, API, worker 2026-08-23 23:26:27 -05:00
.gitignore Branding from the canonical logo: icons, installer art, favicon and wordmark 2026-09-29 16:29:56 -05:00
bootstrap.ps1 AI17Z lives on AI17Z Code, its own Forgejo, and needs no other host to install or update 2026-10-20 08:58:48 -05:00
bootstrap.sh AI17Z lives on AI17Z Code, its own Forgejo, and needs no other host to install or update 2026-10-20 08:58:48 -05:00
CODE_OF_CONDUCT.md AI17Z lives on AI17Z Code, its own Forgejo, and needs no other host to install or update 2026-10-20 08:58:48 -05:00
CONTRIBUTING.md Accounts on AI17Z Code are by invitation for now, and CONTRIBUTING says so 2026-10-21 03:24:38 -05:00
docker-compose.yml An installed copy can load the wallet adapter its owner installed 2026-10-14 18:28:09 -05:00
doctor-ai17z.ps1 AI17Z tells you to open the address it actually listens on 2026-10-12 09:58:29 -05:00
doctor-ai17z.sh Beta 3.1, an account you can get rid of, and a voice it can actually learn 2026-09-14 22:51:04 -05:00
eslint.config.js ubuntu: the whole lifecycle, and a browser role that never reached the worker 2026-09-13 10:16:03 -05:00
install-ai17z-macos.sh Mac and arm64 Ubuntu packages are assembled on Linux and proved against natively built ones 2026-10-20 22:31:31 -05:00
install-ai17z-ubuntu.sh Mac and arm64 Ubuntu packages are assembled on Linux and proved against natively built ones 2026-10-20 22:31:31 -05:00
install-ai17z.ps1 launcher: something to click, that opens the right installation 2026-09-04 05:44:09 -05:00
install-ai17z.sh AI17Z Beta 1.0.0 (20) 2026-09-14 17:13:05 -05:00
install.ps1 AI17Z lives on AI17Z Code, its own Forgejo, and needs no other host to install or update 2026-10-20 08:58:48 -05:00
launch-ai17z.ps1 installer: nothing an installation needs is written beside the program 2026-09-05 21:12:18 -05:00
launch-ai17z.sh unix: one resolver for where an installation's data is 2026-09-13 09:55:07 -05:00
LICENSE Name the copyright holder 2026-09-01 18:42:31 -05:00
package-lock.json AI17Z lives on AI17Z Code, its own Forgejo, and needs no other host to install or update 2026-10-20 08:58:48 -05:00
package.json AI17Z lives on AI17Z Code, its own Forgejo, and needs no other host to install or update 2026-10-20 08:58:48 -05:00
playwright.config.ts e2e: nine Playwright tests driving the real UI against the Docker stack 2026-08-24 05:22:27 -05:00
README.md AI17Z lives on AI17Z Code, its own Forgejo, and needs no other host to install or update 2026-10-20 08:58:48 -05:00
restart-ai17z.ps1 scripts: restart and update, and the checks that go before them 2026-09-04 05:42:41 -05:00
restart-ai17z.sh unix: one resolver for where an installation's data is 2026-09-13 09:55:07 -05:00
SECURITY.md AI17Z lives on AI17Z Code, its own Forgejo, and needs no other host to install or update 2026-10-20 08:58:48 -05:00
start-ai17z.ps1 AI17Z tells you to open the address it actually listens on 2026-10-12 09:58:29 -05:00
start-ai17z.sh ubuntu: the whole lifecycle, and a browser role that never reached the worker 2026-09-13 10:16:03 -05:00
stop-ai17z.ps1 Stopping forgets the native worker it killed, so a fast restart starts a new one 2026-09-28 00:12:19 -05:00
stop-ai17z.sh ubuntu: the whole lifecycle, and a browser role that never reached the worker 2026-09-13 10:16:03 -05:00
tsconfig.base.json foundation: monorepo, contracts, Postgres schema, migrator 2026-08-23 22:58:52 -05:00
tsconfig.json upstream: the runtime a capability reads the outside world through 2026-09-10 08:25:37 -05:00
update-ai17z.ps1 AI17Z lives on AI17Z Code, its own Forgejo, and needs no other host to install or update 2026-10-20 08:58:48 -05:00
update-ai17z.sh scripts: restart and update, and the checks that go before them 2026-09-04 05:42:41 -05:00
vitest.config.ts build: vitest 4.1.11, closing the mocker path-traversal advisory 2026-09-11 10:21:25 -05:00

AI17Z

AI17Z

A local-first platform for persistent autonomous AI agents.

The model is replaceable. The agent is durable.

CI Release License: MIT

Install · What makes it different · Architecture · Status · Documentation


The idea

Most agent frameworks are a wrapper around a model call. Change the model and you have changed the agent, because the model was the agent.

AI17Z splits those apart. The provider supplies replaceable intelligence; AI17Z supplies the part that persists:

identity · persona · memory · relationships · beliefs and stances · commitments · knowledge and its provenance · goals · policy · learning

An agent keeps that across restarts, across model changes, and across providers. Swap the model and the same agent answers in the same voice from the same memory, because none of that lived in the model.

It runs on your own machine. The database, the browser profile, the keys and every memory stay there.


What makes it different

Durable by construction, not by convention. Every inbound event becomes an immutable record and a job. Jobs survive restarts and resume from the last completed step, because each step commits before the next begins.

The same event cannot act twice. Not by careful coding: by unique index. Three layers of idempotency, enforced by the database, plus exact-target verification immediately before anything irreversible.

Answerable behaviour. Every generation stores its prompt layers, which memories it retrieved and why, every model attempt, and the verification that preceded the action. "Why did it do that?" and "why did it stay silent?" both have recorded answers.

Silence is a result. An agent that decides not to act records the decision and its reasons. A correctly quiet agent does not look broken.

A real browser, honestly. Browser-backed channels drive actual installed Google Chrome over CDP with a persistent profile, with both the chosen executable and what the browser reported about itself stored and shown. A CAPTCHA, a second factor or a device challenge stops the agent and waits for a person: there is no solver and no bypass, and no setting that changes it.

Replaceable models. OpenAI, Anthropic, OpenRouter, Ollama, any OpenAI-compatible endpoint, and a deterministic mock, behind one gateway with a fallback chain. Local models work; nothing requires a cloud provider.

A safe default. Dry run executes the whole pipeline, verifies the target, and stops before touching anything real.


Install

AI17Z installs on Windows, macOS 13+ and Ubuntu 22.04+. None of them needs Git, and the macOS and Ubuntu packages carry their own verified Node runtime. All three use Docker for the database. Google Chrome is optional and enables browser-backed channels.

Windows

Open Windows Terminal and paste:

irm https://code.ai17z.io/AI17Z/ai17z/raw/branch/main/install.ps1 | iex

That is the whole installation: it checks the machine, installs what is missing, installs AI17Z, starts it, verifies it works, and opens it.

macOS and Ubuntu

Download the short installer from the latest release, read it, and run it. Both are plain shell scripts, deliberately short enough to audit.

Install AI17Z only with the command published here. Nowhere else distributes it. The command fetches code.ai17z.io/AI17Z/ai17z/raw/branch/main/install.ps1, checks the setup script against the release's own SHA256SUMS.txt before writing anything, and re-checks it immediately before running it.

AI17Z is not code-signed, so where it came from is the whole of the answer to who wrote it. Nothing in the install path disables SmartScreen, Defender, UAC or the PowerShell execution policy, and docs/SETUP_AUDIT.md lists every host it may contact and every change it may make, including what the checksum does not protect against.

Code signing

AI17Z is not signed, and is not about to be. Free certificates for open-source projects are granted on the strength of an existing user base; we applied and were turned down for not having one yet. Saying signing is coming would be a nicer sentence and not a true one.

That is why the ordinary way in is a command rather than a download. We will never ask you to disable SmartScreen, Smart App Control or your antivirus, or to click past a warning. Windows trust and SmartScreen explains what those warnings actually mean, and docs/CODE_SIGNING_POLICY.md is where this stands.

Full instructions, from-source builds, updating, running several copies and troubleshooting: docs/INSTALL.md.


Architecture

apps/api         Fastify HTTP layer. Owns no browsers.
apps/worker      Job worker, channel poller, browser runner. Owns all browsers.
apps/web         React single-page app.

packages/shared     Isomorphic zod contracts, crypto, logging, environment.
packages/database   Postgres pool, migrator, one repository per domain.
packages/jobs       Postgres-backed queue: claim, lease, recover, back off.
packages/models     Model gateway and provider adapters.
packages/memory     Six memory scopes, retrieval, write policy.
packages/prompts    Layered prompt engine.
packages/channels   Channel contract, mock channel, X adapter.
packages/browser    Playwright session manager, real Chrome over CDP.
packages/persona    Corpus normalising, scoring, trait derivation.
packages/tools      Capability contract and built-in capabilities.
packages/runtime    Validator, policy gates, ingest, pipeline state machine.

The pipeline every action goes through:

inbound event → immutable event → durable job → context and memory
  → prompt, model, capability decisions → validation and policy
  → exact-target verification → remote action or deliberate silence
  → verified outcome → learning

Nothing downstream of a channel adapter knows what any particular platform looks like. No selector, no cookie and no vendor payload leaves packages/channels; everything else operates on normalised contracts.


Status

AI17Z is in beta and under active development. It is used daily against real accounts by its authors.

Area State
Durable pipeline, jobs, idempotency Shipped
Memory, relationships, beliefs, knowledge Shipped
Model gateway and provider fallback Shipped
Browser-backed channels with real Chrome Shipped
Owner chat, Agent Foundry, Response Lab Shipped
Plugins and capability permissions Shipped
Agent packages: share, move, export Shipped
Windows, macOS and Ubuntu packaging Shipped
Agent wallet: owner-approved, read-only to models Shipped, disabled by default
Hosted runtimes Runtime proved, not sold: see below
Agentic trading Complete to the signing boundary, no funded order

Hosted runtimes, specifically. The runtime a customer would rent exists and runs: AI17Z boots inside its own virtual machine, from a plan this repository renders, with its own kernel, database, key, disk and unprivileged user. Two tenants run side by side and neither can reach the other's runtime while that runtime is answering its own. Six run at once at about 531 MB each. A tenant killed as hard as a power cut comes back with everything it had. A tenant is provisioned end to end by the step machine in tenantProvisioning.ts.

It is not sold, and the reason is the whole point. The offer would be that whoever runs the machine cannot read your agent. On ordinary hardware that is false: tenants are isolated from each other and not from an administrator. What changes it is confidential hardware with attestation-gated key release, and none has been provisioned, so the attestation verifier, the measurement policy, the key-release interface and both cloud adapters are built and tested against fixtures rather than against a machine. Phase 1 contracts are frozen as a candidate with that canary outstanding. CONFIDENTIAL_COMPUTE.md is the research, the costs and the provider comparison; HOSTING.md is what was measured and what has deliberately not been claimed.

Releases are versioned with strict semver and every one is gated on the full test suite, a cold typecheck, lint, a production web build, a production dependency audit, ShellCheck, fresh and existing database migrations, a privacy and secret scan, and a clean-room install verification that installs twice, upgrades over itself, and asserts no data was lost.


Your data

Everything an agent knows stays on the machine running it: the Postgres database, the browser profile, the signed-in sessions, the keys and every memory.

  • No telemetry. AI17Z phones no home. There is no analytics endpoint.
  • Provider keys are sealed with AES-256-GCM under a master key that never leaves the installation, and are readable only by the code that calls a provider. They never appear in an API response, a log line, an audit row or a trace.
  • What does leave is what you point an agent at: the model provider you chose, and the services you connected it to. docs/PRIVACY.md itemises it.
  • It is yours to leave with. Any agent exports to a single portable document that any other AI17Z installation can import.

Documentation

Getting it running

How it works

AI17Z can read these itself: attach docs/ as a knowledge source and an agent can answer questions about the exact version you are running.


Contributing

Issues and pull requests are welcome, on AI17Z Code. CONTRIBUTING.md covers the workflow and what the gates expect, CODE_OF_CONDUCT.md covers the project's own spaces, and SECURITY.md is how to report a vulnerability privately.

npm install          # install dependencies
npm run db:up        # Postgres in Docker
npm run migrate      # apply migrations
npm run dev          # api + worker + web
npm test             # unit and integration suites
npm run typecheck    # tsc across every package

Token

AI17Z has an associated token. The only contract address is:

0x16CB7cBb26295b60DF7f4B3B39a99a9A3c585E81

Any other address claiming to be AI17Z is not. The token is not required to install, run or use anything in this repository: AI17Z is MIT-licensed software that runs locally and needs no token, wallet or payment.


License

MIT. Use it, change it, ship it; keep the copyright notice.

Nothing in the dependency tree argues with that. Of 372 installed packages: 305 MIT, 23 ISC, 13 Apache-2.0, 7 BlueOak-1.0.0, 6 BSD-3-Clause, 1 CC-BY-4.0, 1 0BSD, and 16 that declare nothing. No GPL, AGPL, SSPL or BUSL anywhere.

The licence covers this code. It does not cover what you do with it: the terms of any service an agent acts on are between you and that service.