{"slug": "show-hn-veyra", "title": "Show HN: Veyra", "summary": "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.", "body_md": "Veyra is a minimal starting point for a self-evolving local AI agent.\n\nYou shape the agent primarily by **chatting with it**.\n\nInstead 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.\n\nFor example:\n\n```\nYou:\nYour memory is too primitive. Design a better long-term memory system,\nimplement it, test it, and create a new version of yourself.\n\nAgent:\nI inspected the current implementation and created V1 with a persistent\nmemory layer. The new release passed its self-test and is ready to run.\n```\n\nOver time, the conversation can shape the system:\n\n```\nV0\n │\n │ \"Improve your memory\"\n ▼\nV1\n │\n │ \"Use a better architecture for long-running tasks\"\n ▼\nV2\n │\n │ \"Replace the current model provider\"\n ▼\nV3\n │\n ▼\n...\n```\n\nThe 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.\n\nFuture versions are free to change their language, architecture, model provider, dependencies, memory system, or internal design.\n\nThe supervisor stays outside the mutable releases so a broken successor can be rejected or rolled back.\n\nVeyra is a minimal starting point for a self-evolving local AI agent.\n\nThe 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.\n\nFuture versions are free to change their language, architecture, model provider, dependencies, memory system, or internal design.\n\nThe supervisor stays outside the mutable releases so a broken successor can be rejected or rolled back.\n\n```\nveyra/\n├── supervisor/\n│   └── supervisor\n│\n├── releases/\n│   └── v0/\n│       ├── START\n│       ├── bootstrap.py\n│       ├── requirements.txt\n│       └── initial_prompt.md\n│\n├── state/\n│   ├── memory/\n│   ├── conversations/\n│   └── evolution/\n│\n├── workspace/\n│\n└── current -> releases/v0\n```\n\n`current`\n\npoints to the active release.\n\nInitially:\n\n``` php\ncurrent -> releases/v0\n```\n\nLater:\n\n``` php\ncurrent -> releases/v1\n```\n\nThe supervisor watches `current`\n\n. 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.\n\nThe intended evolution is:\n\n```\nV0 → V1 → V2 → V3 → ...\n```\n\nV0 is the human-created seed. Later versions are created by the running system.\n\nV0 requires:\n\n- Python 3\n- an OpenAI API key\n- a Telegram bot token\n- your Telegram numeric user ID\n\nThe following configuration is required **only by Version 0**.\n\nV0 is the human-created starting point, so it initially uses the OpenAI API and Telegram directly:\n\n```\nexport OPENAI_API_KEY=\"...\"\nexport TELEGRAM_BOT_TOKEN=\"...\"\nexport TELEGRAM_OWNER_ID=\"...\"\n```\n\nOptionally:\n\n```\nexport OPENAI_MODEL=\"gpt-5.6\"\n```\n\nThese variables are **not permanent requirements of Veyra**.\n\nFuture versions may replace the model provider, authentication method, Telegram integration, or configuration system entirely.\n\nThey exist only so V0 has enough capability to start the system and create its successors.\n\nFrom the project root:\n\n```\nchmod +x supervisor/supervisor releases/v0/START\n./supervisor/supervisor\n```\n\nThat's the normal entry point.\n\nThe supervisor will:\n\n``` php\nstart\n  ↓\ncreate `current -> releases/v0` if missing\n  ↓\nself-test the active release\n  ↓\nrun current/START\n  ↓\nkeep watching the active release\n```\n\nYou normally do not run `bootstrap.py`\n\ndirectly.\n\nA running release can build a successor in `workspace/`\n\n, place the finished version under `releases/`\n\n, and change `current`\n\n.\n\nFor example:\n\n``` php\nreleases/\n├── v0/\n└── v1/\n\ncurrent -> releases/v1\n```\n\nThe supervisor detects the change and performs the handover.\n\nThe core idea is simple:\n\nV0 provides the starting point. Everything above the supervisor boundary is allowed to evolve.", "url": "https://wpnews.pro/news/show-hn-veyra", "canonical_source": "https://github.com/iondodon/veyra", "published_at": "2026-08-19 08:02:41+00:00", "updated_at": "2026-08-19 08:12:38.185646+00:00", "lang": "en", "topics": ["ai-agents", "ai-research", "ai-tools"], "entities": ["Veyra", "OpenAI", "Telegram"], "alternates": {"html": "https://wpnews.pro/news/show-hn-veyra", "markdown": "https://wpnews.pro/news/show-hn-veyra.md", "text": "https://wpnews.pro/news/show-hn-veyra.txt", "jsonld": "https://wpnews.pro/news/show-hn-veyra.jsonld"}}