Friday — A 24/7 AI Assistant Built Entirely on Claude Code

An always-on personal AI system using only Claude Code CLI ($100/month) and Telegram — no custom AI, no cloud VMs, no fine-tuning.

What Is This?

This is a self-evolving AI assistant that runs 24/7 on a standard Windows, Linux, or macOS machine. It communicates via Telegram, runs scheduled tasks autonomously, manages files and projects, and maintains persistent memory across sessions — but it also learns from its own behavior. It acquires new skills, reflects on daily performance, infers user preferences from repeated corrections, and proposes its own improvements. The entire system is powered by Claude Code (Anthropic's CLI agent) on the $100/month Max Plan — no custom AI backend, no fine-tuned models, no orchestration framework. The only custom code is a lightweight Flask server for persistent memory and the self-evolving subsystems.

How It Works

Claude Code sits at the center, connecting to external services through MCP (Model Context Protocol) plugins and shell tools. A CLAUDE.md file acts as the system prompt, defining behavior, available tools, and cron schedules. Scheduled tasks run autonomously without human input. On top of this, a set of self-evolving subsystems — skill acquisition, daily reflection, preference learning, world modeling, and self-improvement proposals — run as scheduled jobs on the same memory server, feeding insights back into the assistant's behavior without any model fine-tuning.

User (Telegram) ---> Claude Code (with MCP plugins)
    |
    |--> Memory API ---> SQLite (conversations, memories, embeddings)
    |--> Self-Evolving ---> Skills, reflections, preferences, world model, proposals
    |--> Knowledge Base (MCP) ---> Notes, wiki, structured data
    |--> GitHub ---> Repos (push, commit, PR)
    |--> Voice API ---> Text-to-speech / Speech-to-text
    |--> Email (MCP) ---> Send, receive, forward
    |--> Web Search / Fetch ---> News, research, data
    |--> Cron system ---> Recurring autonomous jobs
    |--> Local tools ---> Shell, scripts, system utilities

Why Not Use an Agent Framework?

Projects like OpenClaw, NemoClaw, and other agent frameworks are impressive, but they add layers of complexity: custom runtimes, orchestration code, deployment pipelines, and often their own API costs. This approach is different.

Claude Code already is the runtime. It has native tool use, MCP plugin support, cron scheduling, sub-agent spawning, file I/O, git, and shell access built in. There is no glue code between the LLM and the tools — Claude Code handles it all natively.

The philosophy: stay within a single subscription, respect the provider's Terms of Service, and avoid bolting on external LLM APIs or custom agent infrastructure. One plan, one CLI, one model — and let the model do what it was designed to do. The result is a system that is simple to maintain, easy to reproduce, and costs exactly $100/month.

The Stack

Component Technology
Brain Claude Code CLI (Opus 4.6, 1M context)
Interface Telegram (via MCP plugin)
Memory Flask + SQLite + embedding-based RAG
Knowledge Notion (via MCP plugin)
Voice TTS/STT API (ElevenLabs or equivalent)
Scheduling Claude Code built-in cron system
Cost $100/month (Anthropic Max Plan)

Screenshots

The memory server includes a visual web endpoint that renders all stored logs, memories, and entities as interactive graph nodes. This implementation is called Friday, but the system can be renamed to anything the user wants — the name is just a variable in the CLAUDE.md configuration.

Memory Graph visualization
Memory graph — D3.js force-directed visualization showing conversations, memories, and entities as interactive nodes. Each node type has a distinct color. Drag, zoom, and click to explore.
Architecture Diagram
Architecture diagram — Visual map of all system components and their connections: services, data stores, cron jobs, APIs, and projects. Nodes are draggable and positions persist server-side.

Capabilities

Scheduled Jobs (10 Crons)

The system runs 10 autonomous cron jobs that keep it alive and learning:

# Job Schedule Purpose
1Email checkEvery 1hCheck inbox for new emails, notify if any
2Cron watchdogEvery 6hVerify no crons are about to expire (7-day TTL)
3Daily briefingDaily ~9 AMWeather, currencies, AI news, movies + cron status
4HeartbeatEvery 1hSystem health, verify all 10 crons, social check-in
5Monthly usageEnd of monthAPI usage report across all services
6ReflectionEvery 12hReview logs for patterns, mistakes, insights
7Preference learningDaily (night)Infer rules from repeated feedback corrections
8AI Model MonitorDaily 10:17Scan for new AI model releases, update index
9Memory API healthEvery 3hHealth check with auto-restart on failure
10Weekly summarizationWeekly (Sun)Compress old conversation logs into weekly summaries

The heartbeat and briefing crons act as watchdogs — they verify all 10 jobs are active and recreate any that are missing.

Memory Server

Claude Code generates a single Flask + SQLite server file that handles everything: conversation logging, long-term memory, entity tracking, key-value storage, and RAG with vector embeddings. No external vector database — embeddings are stored as BLOBs in the same SQLite file.

Core features

Web visualization

The server also hosts a single-page web app at /graph with four interactive tabs:

Self-Evolving System

The assistant doesn't just follow instructions — it learns from its own behavior and improves over time.

Five systems work together to make this happen:

All of this runs on the same memory server with no additional infrastructure. The data is visible in the Memory Graph's "Brain" tab — a dashboard showing learned skills, active preferences, daily reflections, world model insights, and pending proposals.

Brain Dashboard

Brain Dashboard
The Brain tab: learned skills, active preferences, daily reflections, world model insights, and pending self-improvement proposals — all running on the same memory server.

The result is a system that gets better at its job every day — not because the underlying model changes, but because it builds a growing library of skills, preferences, and behavioral patterns on top of it. The model stays the same. The assistant evolves.

v2 update — April 2026: the self-evolving core has been extended with a full cognition harness: goal engine, hierarchical plans, three-layer memory, causal world model, verifier/sandbox, experiment engine, skill compiler and a metrics framework that proves whether the system is actually improving. The infrastructure added 13 new tables, ~60 endpoints and 5 new crons, all additive — nothing old was removed.

Read the technical deep-dive: The Self-Evolving Harness

The $100 Question

This entire system runs on a single $100/month Anthropic Max Plan. No cloud VMs running inference. No LangChain, no AutoGPT, no agent framework. Just Claude Code on a Linux machine with MCP plugins.

The key insight: Claude Code is not just a coding assistant — it is a general-purpose autonomous agent runtime. Give it tools, instructions, and a schedule, and it becomes a full 24/7 assistant. The $100 plan provides (almost) unlimited access to one of the most capable AI models available, with native tool use and long context. That is enough.

Set It Up Yourself

Download the setup guide below and pass it to a fresh Claude Code session. It will walk through every step autonomously — creating the Telegram bot config, memory server, API keys, and CLAUDE.md. You just approve and follow along.

Download SETUP.md GitHub Repo

Then open Claude Code and type:

Read the file ~/Downloads/SETUP.md and follow every step in it to set up a 24/7 AI assistant on this machine. Ask me for confirmation before each major step.

That's it. Claude Code reads the guide and walks you through the entire setup autonomously.

View SETUP.md

The setup file is a step-by-step autonomous guide that Claude Code follows to bootstrap the entire system: Telegram bot, memory API server, CLAUDE.md configuration, cron jobs, and first-run verification. The user only needs to provide API keys and approve actions. No manual coding required.

Once everything is set up, start the assistant with:

claude --channels plugin:telegram@claude-plugins-official --dangerously-skip-permissions

That's it. Claude Code reads your CLAUDE.md, connects to Telegram, creates all cron jobs, and starts running autonomously.