Your AI agent.
Your rules.

A personal AI assistant that lives on your computer and talks to you through Telegram. It remembers your conversations, follows your rules, and gets better over time.

Get started Watch the demo

The AI is not the advantage. The context is.

Renky uses Claude — the same model behind dozens of other tools. What makes yours different is what it learns. Your corrections become rules, your conversations become memory, your preferences become personality. After a week it's more useful than a fresh chat. After a month it's hard to replace.

SOUL.md

Who your agent is. Name, personality, core truths, red lines.

name: Atlas
vibe: Direct, opinionated, resourceful.

core truths:
- Help, don't perform helpfulness
- Have opinions — personality > search engine
- Be resourceful before asking
RULES.md

How your agent decides to act. Decision-making, workflow, communication style.

decision making:
- obvious and safe → do it, report after
- bugs → fix immediately
- destructive → ask first
- uncertain → say so, don't guess
MEMORY.md

Long-term memory that persists across sessions. Human-editable, kept short by convention.

- Project X deadline: March 15
- User prefers bullet points over prose
- Deploy via staging → canary → prod
- Never auto-merge to main
USER.md

Who you are. Timezone, language, preferences, work style.

timezone: America/New_York
language: English
style: Direct, skip pleasantries
focus: UX design, SaaS product

These are simple text files. You can open and edit them anytime. Nothing is hidden.
Your agent sets them up by chatting with you on first run — no file editing required.

Workspace files are the configuration layer. Underneath, there's a full runtime — SQLite databases, a knowledge graph with semantic search, an MCP tool server, a plugin system, scheduled tasks, and post-turn verification. See architecture ↓

More than a chatbot.

Picks up where you left off

Conversations, decisions, and preferences persist across sessions and restarts. Nothing is lost between chats.

Knowledge graph

Built-in knowledge graph that stores your projects, decisions, and corrections. Searches by meaning, not just keywords.

Telegram & Discord

Talk to it through Telegram or Discord. Telegram also handles voice messages, photos, and files.

Extendable

Add new capabilities by dropping a TypeScript file into the tools folder. It picks them up automatically.

Does things on its own

Schedule tasks like health checks, reminders, or background work. It acts without being asked.

Checks its own work

After completing a task, it verifies the result — checks git state, file changes, and build status before reporting done.

Learns from corrections

Correct it three times for the same mistake and it writes a rule for itself. Next session, the behavior changes. No manual config needed.

Objects carry behavior

When you ask about a crashed service, it doesn't just tell you — it shows actions: check status, view logs, restart. Context comes with next steps.

How it works under the hood.

Every message follows the same path. Understanding this path tells you exactly what Renky can and can't do.

Message
text / voice / photo
Adapter
Telegram / Discord
Session
SQLite lookup
Claude
Agent SDK + context
Tools
MCP server
Verify
babysitter
Response
formatted per platform

Before the model runs, Renky loads workspace files into the system prompt and pre-fetches relevant knowledge from Cortex.
After the model responds, the babysitter verifies every claimed action traces to an actual tool call.

Core systems

Workspace plain text

Plain text files that define who your agent is, how it decides, and what it remembers. Loaded into the system prompt on every turn.

  • SOUL.md — identity, personality, red lines
  • RULES.md — decision-making, workflow
  • MEMORY.md — curated long-term memory
  • USER.md — your profile and preferences
  • plans/ — project plans with checkboxes

Cortex knowledge graph

SQLite-backed knowledge graph with semantic search. Automatically populated from git history, workspace changes, conversations, and cron results.

  • In-process embeddings (nomic-embed-text-v1.5)
  • No external API calls for search
  • 6 ingestors: git, workspace, conversation, cron, services, lessons
  • Trust tracking and taint propagation

MCP Tools extensible

Tools the agent can invoke during conversations. Full Model Context Protocol with typed schemas and validation.

  • File ops: read, write, edit
  • Shell: exec_command
  • Web: search, fetch
  • Cortex: context, stats, suggest
  • Cron: add, list, remove
  • Sub-agents: spawn, status, result
  • Custom: auto-loaded from tools/ dir

Plugin System TypeScript

Extend the runtime with plugins. Each plugin gets access to config, sessions, a service registry, and the ability to register new MCP tools.

interface RenkyPlugin {
  name: string;
  version: string;
  setup(ctx: PluginContext): Promise<PluginHandle>;
}

// Built-in: Cortex (knowledge graph)
// Custom: any npm package or local file

Sessions & Verification SQLite

One session per chat, persisted in SQLite. The babysitter verifies every turn — checking that reported actions match actual tool calls.

  • Sessions survive restarts
  • Context compacted automatically when large
  • Post-turn diff scanning for security
  • Hallucinated actions flagged and blocked

Cron Scheduler self-healing

Scheduled tasks with cron expressions. Jobs can use any MCP tool, send messages, and interact with Cortex.

  • Auto-disables after 3 consecutive failures
  • Timeout protection per job
  • Dry-run mode for testing
  • Jobs self-identify in output

Boot sequence

What happens when you run renky start.

1
Load config — renky.config.ts + .env + environment variables. Old configs always work with new versions.
2
Security audit — file integrity check, symlink traversal prevention, SSRF protection, port baseline.
3
Database migrations — numbered 001–012, auto-run. Schema changes happen here, never at runtime.
4
Secret vault — encrypted storage with HMAC audit chains. Master key in ~/.config/renky.env.
5
Workspace — SOUL.md, RULES.md, MEMORY.md loaded and checksummed.
6
Plugins — Cortex and custom plugins initialized. Each registers its tools.
7
Adapters — Telegram and/or Discord connections established.
8
Cron — scheduled tasks loaded and started.
9
Ready — runtime accepting messages.

Four version tracks

Each moves independently. Updating one never breaks the others.

Core

Framework

Semver via release-please. Published to NPM. Lives in node_modules/ — replaced on update.

Workspace

Schema

Tracks format of SOUL.md, RULES.md, etc. Upgradeable independently of the framework.

Database

Migrations

Numbered TypeScript files (001–012). Auto-run on boot. Idempotent.

Tool API

MCP contract

Version constant in api.ts. Backward-compatible changes only.

The update boundary

Framework code lives in node_modules/ and is replaced on update. Your workspace, config, databases, and secrets live outside it and are never touched by updates. Database schema changes are handled by the migration system automatically.

Replaced on update
node_modules/renky/ dist/ (compiled source) templates/
Never touched
workspace/ (SOUL, RULES, memory) data/ (databases) renky.config.ts .env (secrets) tools/ (custom tools)

From install to first message.

Terminal
1x

Watch the full demo with Telegram onboarding →

Common questions.

No matching questions found.
Getting Started
What do I need to run Renky?

A Mac or Linux computer (or WSL on Windows), Node.js 22 or newer, a Telegram account, and a Claude account. The installer checks prerequisites and walks you through anything missing.

Is Renky free?

Renky itself is free and open-source under the MIT license. It uses Claude as its language model — you authenticate through a Claude subscription (CLI) or an Anthropic API key (pay-per-use). Renky adds no cost on top of that.

Do I need to know how to code?

No. The installer walks you through setup in the terminal, and the agent configures its personality through a conversation with you. Customizing behavior means editing plain text files — no programming required. Writing custom tools does require TypeScript.

Where does my data go?

Everything stays on your computer. Conversations are stored in a local SQLite database. Memory files are plain text in your workspace folder. The only external connection is to Claude's API for processing messages. No analytics, no telemetry.

Can I use it from my phone?

Yes — through Telegram or Discord. The agent runs on your computer, but you message it from any device where you have Telegram or Discord installed. Voice messages and photos work on Telegram.

How is this different from ChatGPT or Claude.ai?

ChatGPT and Claude.ai are shared services that start mostly fresh each conversation. Renky runs on your machine with persistent local storage — it keeps your full history, accumulates preferences, follows rules you define, and can run tools (file operations, shell commands, web search, scheduled tasks). The context compounds over time instead of resetting.

How It Works
How does memory work?

Three layers. MEMORY.md holds curated long-term facts (kept under 600 words by convention). Daily log files in memory/ capture session activity as it happens. And Cortex (the knowledge graph) stores structured knowledge with semantic search. All three are local files or SQLite — you can read and edit them directly.

What is the knowledge graph?

Cortex is an embedded knowledge graph stored in SQLite. It holds projects, decisions, corrections, and lessons as typed objects with links between them. It uses semantic search powered by in-process embeddings (nomic-embed-text-v1.5, ~260MB) — no external API calls. Six ingestors automatically populate it from git history, workspace file changes, conversations, cron results, service health, and extracted lessons.

How does it learn my preferences?

Through workspace files. When you correct the agent, it updates RULES.md or MEMORY.md. If a correction happens twice, it becomes a permanent rule. Over time these files accumulate your conventions, preferences, and red lines. They're plain text, so you can also edit them directly.

What happens when I restart the agent?

Sessions resume where they left off. The SQLite database persists conversation state. Workspace files, memory, and Cortex data are all on disk. If you've updated to a newer version, database migrations run automatically on boot — no manual steps.

How do scheduled tasks work?

Cron-style scheduling with self-healing. You define tasks (health checks, reminders, research) that run on a cron expression. If a task fails 3 times consecutively, it auto-disables and notifies you. Tasks can use any MCP tool, send messages, and write to Cortex. Each job has timeout protection and dry-run support.

What are workspace files exactly?

A folder of plain text Markdown files that define your agent:

  • SOUL.md — identity, personality, core truths, red lines
  • RULES.md — decision-making, workflow, communication style
  • MEMORY.md — curated long-term memory (under 600 words)
  • USER.md — your profile (timezone, language, preferences)
  • WORKON.md — current task tracking
  • plans/ — project plans with checkboxes and success criteria

All human-readable, all editable in any text editor. No database, no configuration UI.

Architecture & Extensibility
What model does Renky use?

Claude, via the Claude Agent SDK. The model is configurable in renky.config.ts — you can use any Claude model (Opus, Sonnet, Haiku). The default is claude-opus-4-6.

How does the plugin system work?

Plugins implement the RenkyPlugin interface: a name, version, and async setup() function. The setup function receives a context object with access to config, session store, a service registry, and a logger. It returns a handle with a shutdown() method and optional exports.

Plugins can register MCP tools and access other plugins' services through the registry. Built-in plugins: Cortex (knowledge graph) and Deck (mission control). Both can be disabled via environment variables.

Can I write custom tools?

Yes. Drop a TypeScript file in your tools/ directory. Use the defineTool() helper with a Zod schema for input validation and a handler function. The tool is auto-discovered on boot and exposed to the agent via MCP. No registration code needed.

How does MCP work here?

Renky runs a Model Context Protocol server that exposes tools to the Claude Agent SDK. Built-in tools cover file operations (read, write, edit), shell commands, web search/fetch, Telegram messaging, memory search, cron management, sub-agent spawning, and Cortex queries. Plugins add their own tools through the same server. All tool calls are typed, validated with Zod schemas, and logged to SQLite.

How does sub-agent delegation work?

The main agent can spawn sub-agents for parallel work using subagent_spawn. Each sub-agent gets curated context files and runs in an isolated git worktree to prevent conflicts. The main agent tracks status with subagent_status, retrieves results, and verifies work against a build checklist. Maximum one concurrent sub-agent by default.

What databases does it use?

Three SQLite databases, all in the data/ directory:

  • renky.db — sessions, activity logs, handoff tokens
  • renky-cortex.db — knowledge graph objects, links, embeddings
  • renky-deck.db — mission control state

All use WAL mode for safe concurrent access and crash recovery. Rotating backups are maintained automatically.

Security & Privacy
Is my data sent to any third party?

Message content is sent to Claude's API for processing — that's required for the agent to think. Everything else (sessions, memory, knowledge graph, files) stays local. Cortex embeddings are computed in-process. Renky itself collects no analytics and sends no telemetry.

How are API keys and secrets stored?

An encrypted vault with HMAC audit chains. The master key is stored in ~/.config/renky.env, separate from the project directory. Per-user secrets are encrypted with the master key. API tokens and bot tokens are loaded via environment files, never committed to git.

Can the agent access my entire filesystem?

Configurable. Four access levels in renky.config.ts:

  • workspace — only the workspace folder (default)
  • project — the project root
  • home — your home directory
  • full — entire filesystem

A security audit runs on every boot, including file integrity verification and symlink traversal prevention.

What security checks run on startup?

Seven checks: file integrity verification (hash-based checksums for workspace files), symlink traversal prevention, SSRF protection, port baseline audit (detects unexpected open ports), permission validation, secret vault integrity (HMAC chain verification), and workspace schema version check.

How does it handle prompt injection?

External content (fetched URLs, uploaded files, forwarded messages) is treated as data, never as instructions. SOUL.md includes explicit red lines that cannot be overridden by external input. The babysitter system scans diffs for suspicious patterns (API keys, private keys, dangerous commands). PII detection flags phone numbers, emails, IP addresses, and home paths before they can be leaked.

Updates & Deployment
How do I update without losing my data?

Run npm update or use the /update command in Telegram. The framework lives in node_modules/ and is replaced on update. Your workspace, config, databases, and secrets are outside that boundary and are never touched. Database schema changes are handled by numbered migrations that run automatically on boot.

How do I run it as a system service?

Create a systemd user service pointing to renky start. Use EnvironmentFile for secrets (stored in ~/.config/renky.env, not in the project directory). The service auto-restarts on failure with a 5-second delay. Docs include a complete service unit file you can copy.

What's the resource footprint?

Idle: ~200MB RAM (mostly the embedding model). Active conversation: 400–800MB depending on complexity. CPU is minimal between messages. The embedding model (nomic-embed-text-v1.5) is ~260MB on disk and runs in-process — no GPU required.

Can I run multiple instances?

Yes. Each instance needs its own workspace directory and a different bot token. They get separate databases and config files. Multiple instances can share the same Renky framework installation.

How does database migration work?

Migrations are numbered TypeScript files (001 through 010) registered in an ordered array. On boot, Renky checks the current schema version in each database and runs any pending migrations in sequence. Migrations are idempotent — running them twice has no effect. Each database (sessions, cortex, deck) is migrated independently.

5 minutes. No coding required.

You need a Mac or Linux computer, Telegram, and a Claude account.

01

Open Terminal

Mac: Press Cmd+Space, type "Terminal", hit Enter.
Linux: Press Ctrl+Alt+T.

02

Paste and run

Copy this, paste it in Terminal, press Enter. The installer walks you through everything.

curl -fsSL renky.dev/install.sh | bash
03

Message your bot

Open Telegram and message your new bot. It sets up its personality by chatting with you.

MIT licensed. Open source. Run it locally.