cd /news/ai-agents/show-hn-veyra Β· home β€Ί topics β€Ί ai-agents β€Ί article
[ARTICLE Β· art-102627] src=github.com β†— pub= topic=ai-agents verified=true sentiment=Β· neutral

Show HN: Veyra

Veyra, a minimal starting point for a self-evolving local AI agent, was released on Hacker News. The system allows users to shape the agent by chatting with it, enabling the agent to inspect its own implementation, modify its design, and create successor versions. The human-created Version 0 (v0) provides the initial environment via Telegram and the OpenAI API, while future versions can change language, architecture, model provider, and more, with a supervisor outside the mutable releases to roll back broken successors.

read3 min views1 publishedAug 19, 2026
Show HN: Veyra
Image: Michielbdejong (auto-discovered)

Veyra is a minimal starting point for a self-evolving local AI agent.

You shape the agent primarily by chatting with it.

Instead of manually redesigning the project every time, you can describe what you want the agent to become. The active version can inspect its own implementation, modify its design, build a successor release, and hand control to that new version.

For example:

You:
Your memory is too primitive. Design a better long-term memory system,
implement it, test it, and create a new version of yourself.

Agent:
I inspected the current implementation and created V1 with a persistent
memory layer. The new release passed its self-test and is ready to run.

Over time, the conversation can shape the system:

V0
 β”‚
 β”‚ "Improve your memory"
 β–Ό
V1
 β”‚
 β”‚ "Use a better architecture for long-running tasks"
 β–Ό
V2
 β”‚
 β”‚ "Replace the current model provider"
 β–Ό
V3
 β”‚
 β–Ό
...

The human-created implementation is Version 0 ( v0). Its job is only to provide the initial environment: connect to the user through Telegram, use an AI model through the API, access the local machine, preserve state, and create successor versions.

Future versions are free to change their language, architecture, model provider, dependencies, memory system, or internal design.

The supervisor stays outside the mutable releases so a broken successor can be rejected or rolled back.

Veyra is a minimal starting point for a self-evolving local AI agent.

The human-created implementation is Version 0 ( v0). Its job is only to provide the initial environment: connect to the user through Telegram, use an AI model through the API, access the local machine, preserve state, and create successor versions.

Future versions are free to change their language, architecture, model provider, dependencies, memory system, or internal design.

The supervisor stays outside the mutable releases so a broken successor can be rejected or rolled back.

veyra/
β”œβ”€β”€ supervisor/
β”‚   └── supervisor
β”‚
β”œβ”€β”€ releases/
β”‚   └── v0/
β”‚       β”œβ”€β”€ START
β”‚       β”œβ”€β”€ bootstrap.py
β”‚       β”œβ”€β”€ requirements.txt
β”‚       └── initial_prompt.md
β”‚
β”œβ”€β”€ state/
β”‚   β”œβ”€β”€ memory/
β”‚   β”œβ”€β”€ conversations/
β”‚   └── evolution/
β”‚
β”œβ”€β”€ workspace/
β”‚
└── current -> releases/v0

current

points to the active release.

Initially:

current -> releases/v0

Later:

current -> releases/v1

The supervisor watches current

. When it changes, it self-tests the requested release, stops the old one, starts the new one, and rolls back if the new release fails during startup.

The intended evolution is:

V0 β†’ V1 β†’ V2 β†’ V3 β†’ ...

V0 is the human-created seed. Later versions are created by the running system.

V0 requires:

  • Python 3
  • an OpenAI API key
  • a Telegram bot token
  • your Telegram numeric user ID

The following configuration is required only by Version 0.

V0 is the human-created starting point, so it initially uses the OpenAI API and Telegram directly:

export OPENAI_API_KEY="..."
export TELEGRAM_BOT_TOKEN="..."
export TELEGRAM_OWNER_ID="..."

Optionally:

export OPENAI_MODEL="gpt-5.6"

These variables are not permanent requirements of Veyra.

Future versions may replace the model provider, authentication method, Telegram integration, or configuration system entirely.

They exist only so V0 has enough capability to start the system and create its successors.

From the project root:

chmod +x supervisor/supervisor releases/v0/START
./supervisor/supervisor

That's the normal entry point.

The supervisor will:

start
  ↓
create `current -> releases/v0` if missing
  ↓
self-test the active release
  ↓
run current/START
  ↓
keep watching the active release

You normally do not run bootstrap.py

directly.

A running release can build a successor in workspace/

, place the finished version under releases/

, and change current

.

For example:

releases/
β”œβ”€β”€ v0/
└── v1/

current -> releases/v1

The supervisor detects the change and performs the handover.

The core idea is simple:

V0 provides the starting point. Everything above the supervisor boundary is allowed to evolve.

── more in #ai-agents 4 stories Β· sorted by recency
── more on @veyra 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain β€” perfect for shipping the agent you just read about.

$git push zahid main
β†’ Live at https://your-agent.zahid.host βœ“
Get free account β†’ Pricing
from €0/mo Β· no card required
LIVE [news/show-hn-veyra] indexed:0 read:3min 2026-08-19 Β· β€”