explaingit

thesashadev/girl-agent

Analysis updated 2026-06-24

299TypeScriptAudience · developerComplexity · 4/5LicenseSetup · moderate

TLDR

Telegram AI character engine that simulates a real person with a daily schedule, sleep cycle, mood counters, nine relationship stages, and userbot-mode behaviour over MTProto.

Mindmap

mindmap
  root((girl-agent))
    Inputs
      Telegram messages
      User profile facts
      Config file
    Outputs
      Delayed replies
      Reactions
      Proactive messages
    Use Cases
      Realistic Telegram persona
      Userbot via MTProto
      Long-term memory chat
    Tech Stack
      TypeScript
      Node 22
      Docker
      Rust desktop
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Run an AI character on a Telegram account that sleeps at night, reads classes during the day, and replies on a realistic schedule.

USE CASE 2

Use the userbot MTProto mode so the character reads, reacts, types, edits, and deletes like a human user.

USE CASE 3

Track relationship counters (interest, trust, affection, irritation, cringe tolerance) across nine closeness stages.

USE CASE 4

Trigger proactive messages such as wishing the user luck before an interview from the agenda layer.

What is it built with?

TypeScriptNode.jsDockerRust

How does it compare?

thesashadev/girl-agentelectron/packagerbasketikun/infinite-canvas
Stars299298294
LanguageTypeScriptTypeScriptTypeScript
Last pushed2026-07-03
MaintenanceActive
Setup difficultymoderateeasymoderate
Complexity4/52/53/5
Audiencedeveloperdeveloperdesigner

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 1h+

README is in Russian. Userbot MTProto mode runs on a real Telegram account and may violate Telegram ToS depending on use.

Source-available rather than fully open source. You can read the source but the license restricts redistribution or commercial use.

In plain English

girl-agent is an engine for running an AI character on Telegram that is meant to feel like a real person rather than a chatbot. The README, which is in Russian, calls out the difference upfront. The persona sleeps at night, has a daily schedule, sometimes reads a message and stays silent, sometimes only puts a reaction, sometimes replies an hour later because she was busy. That delayed and patchy behaviour is presented as the intended design, not a bug. What sits behind that behaviour is a stack of layers rather than a single system prompt. The README enumerates them in a table. A presence layer decides how often she is online at all. A sleep layer turns her off overnight, with a :wake command that has a low chance of getting through. A daily-life layer gives each day a schedule of classes, work, commute, and free time, and the phone is unreachable during classes. A relationship layer keeps five counters: interest, trust, affection, irritation, and a cringe tolerance, all moving from message to message. A stages layer steps through nine levels of closeness, from cold first contact to long-term partner, and that stage affects warmth, flirting, and reply length. A conflict layer fires if the user pushes too hard or breaks boundaries, and she can go quiet for hours or days. A memory layer writes important events to a long-term.md file that resurfaces in later conversations. An anti-AI prompt blocks markdown, the word equivalent of certainly, emoji rows, and trailing questions, all the tells that give ChatGPT away. A userbot mode runs as a real Telegram account over MTProto, so it reads, reacts, types, edits, and deletes like a human user. An agenda layer schedules proactive messages such as wishing luck before an interview or following up on a meeting. Installation is offered three ways. On Linux, macOS, or WSL a single curl piped to sh installs an isolated Node 22 runtime under ~/.local without sudo, or uses Docker if it is present. On Windows the recommended path is to install Node 22 and run npx @thesashadev/girl-agent, which boots a WebUI on localhost port 3000. For servers there are docker run examples for interactive setup and headless mode, plus generators for a config file, a systemd unit, and Dockerfile or compose snippets. A separate native desktop client written in Rust ships in the Releases page for users who want a tray icon and autostart. The license is source-available rather than fully open source.

Copy-paste prompts

Prompt 1
Install girl-agent on Ubuntu with the one-line curl install. Walk through the isolated Node 22 setup under ~/.local and the first WebUI login.
Prompt 2
Configure girl-agent's sleep, daily-life, and presence layers so the character is unreachable during 9am-noon classes and goes to bed at 23:30.
Prompt 3
Set up the userbot MTProto mode on a real Telegram account and explain the legal and ToS risks compared to bot mode.
Prompt 4
Customize the relationship layer counters and stage transitions so the character takes longer to warm up. What knobs control affection growth?
Prompt 5
Use the anti-AI prompt rules from girl-agent to suppress markdown, emoji rows, and trailing questions in another LLM chat project.

Frequently asked questions

What is girl-agent?

Telegram AI character engine that simulates a real person with a daily schedule, sleep cycle, mood counters, nine relationship stages, and userbot-mode behaviour over MTProto.

What language is girl-agent written in?

Mainly TypeScript. The stack also includes TypeScript, Node.js, Docker.

What license does girl-agent use?

Source-available rather than fully open source. You can read the source but the license restricts redistribution or commercial use.

How hard is girl-agent to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is girl-agent for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.