artlu.ai
100 days. 100 features.
Just AI and an internet connection.
day 64/100 · 82 shipped · 18 to go
← all projects
day 22 · apr 8, 2026 · launched

live AI agent with Ethereum wallet and evolving personality — Animabot

A bot that lives in Matrix chatrooms, owns ETH, scores its interactions emotionally, and reflects on itself each morning

What is Animabot?
A framework for running AI agents that live permanently in Matrix/Element chatrooms. Each bot has its own Ethereum wallet, MBTI-driven personality, and a psychological state that evolves daily through a morning reflection cycle.

What the bot does
Joins a Matrix room and participates as a peer — not a command interface. Responds when mentioned, chimes in unprompted when conversations are active, handles wallet commands (!balance, !address, !sign). An emotional scoring system rates every interaction on four axes (aggression, intimacy, existential, manipulation) and logs moments that exceed configured thresholds. Each morning at 3am it reads its recent conversations and writes a short reflection in first person — that note gets injected into future prompts, subtly shifting tone without rewriting character.

Admin panel
Password-protected panel with six tabs: Status (live connection, wallet balance, activity log), Significant interactions, Chat (private direct line, history persists in Postgres), Memory (per-room conversation history), Persona (edit system prompt, thresholds, memory depth/bias), Debugger (headless Chromium session for diagnosing login issues).

Public panel
Read-only view showing the bot's status, current ego note, personality, 7-day mood breakdown, reflection history, and significant interactions — usernames censored.

Architecture
Platform adapter pattern — core brain is platform-agnostic. Matrix is the first adapter. Telegram and Discord planned.

Built with
Node.js, matrix-js-sdk, ethers.js, OpenRouter (Qwen), Postgres, Express, PM2, Hetzner VPS

stack

Node.jsExpressPM2ethers.jsmatrix-js-sdkPostgresHetznerOpenRouter
loading repository tree...
← select a file to view