# DotCore, full project dossier > .core, a full-cycle engineer: I design, build, and ship real products to production under the DotCore brand. ## DotSound ### DotSound (.sound) URL: https://info.dotcore.lol/en/projects/dotsound Status: active · Category: platform · Started: 27 Mar 2026 Repos: Backend (hub): https://github.com/network-user/DotSoundBackend; Bot (telegram-ui): https://github.com/network-user/DotSoundBot; ComputeWorker (asr-worker): https://github.com/network-user/DotSoundComputeWorker Stack: Python 3.12, FastAPI, PostgreSQL 16, Elasticsearch 8, React 18, faster-whisper, SQLAlchemy 2, Redis, Taskiq, MinIO, TypeScript, Vite, aiogram 3.28, Demucs, hls.js DotSound started as a way to pull music from Telegram and streaming platforms into one ad-free player, then grew into an ecosystem of several services. The backend runs the API, task queue and HLS streaming with content-based track dedup; a separate pull-based GPU worker over an HMAC protocol lifts vocals and transcribes lyrics without exposing a single port. Business rules and recommendation ranking live in a closed core: the ecosystem is built so the open code shows the architecture without revealing the ranking logic. Overview: Upload your own tracks or pull music from VK, SoundCloud, Spotify, YouTube and Yandex Music: all in one ad-free player. Entry point is Telegram: open, search, listen. Lyrics surface line by line on their own, mixes adapt to your taste, and everything heavy (ASR, vocal separation, embeddings) runs on a separate GPU worker. Metrics: ~3 месяца: from first commit to a working product 395 k+: lines of code across four repositories 974: commits across four repositories 543: API endpoints in the backend 3.3k: automated tests across four repos 17: GPU job types in the worker 241: database migrations Capabilities: - Upload right in the player: A track uploads straight from the web player: resilient chunked upload, a duplicate check before you even send, your own cover and video. No separate form, no app to install. - Auto-lyrics (ASR): Demucs lifts the vocals, faster-whisper transcribes and syncs the text line by line with timecodes. The words appear on their own. - HLS + content dedup: Adaptive HLS over content-addressed storage: the same track is stored once for everyone, segments cached as immutable. - Search over lyrics and metadata: A full-text Elasticsearch index over metadata and recognized lyrics, ranked by popularity. - Personal mixes and radio: Daily Mix, Weekly Mix, genre sets and endless radio from any seed track: the feed adapts to what you actually play. - Collaborative playlists: Playlists you can edit together, with a collage cover that assembles itself from the tracks inside. - Telegram as the way in: A thin bot: one-tap entry to the player, inline track search in any chat, likes and mixes right inside Telegram. Sign-in and job-ready alerts land there too. - Import from sources: Upload your own tracks right from the player or import from SoundCloud, YouTube, VK, Yandex Music and Spotify: the catalog fills without extra steps. - HMAC GPU offload: The worker pulls jobs over HMAC and runs lyrics and recommendations on GPU. No exposed ports anywhere. - Moderation and compliance: Track complaints, auto-hide past a threshold, and admin moderation. Some social features (chats, comments) are deliberately switched off to meet Russia's 149-FZ information-intermediary rules. Timeline: - 27 Mar 2026: Project start: the first commit - 31 Mar 2026: Adaptive HLS streaming - 12 Apr 2026: PrivateCore: the closed core - 22 Apr 2026: ComputeWorker: the GPU worker - 24 Apr 2026: Search, import and content storage - 26 Apr 2026: Recommendations and radio - 7 May 2026: iOS interface redesign - 10 May 2026: Law and moderation - 17 May 2026: Offline and production hardening - Jun 2026: Now: source-available and stabilization ### DotSound (.звук) URL: https://info.dotcore.lol/projects/dotsound Status: active · Category: platform · Started: 27 Mar 2026 Repos: Backend (hub): https://github.com/network-user/DotSoundBackend; Bot (telegram-ui): https://github.com/network-user/DotSoundBot; ComputeWorker (asr-worker): https://github.com/network-user/DotSoundComputeWorker Stack: Python 3.12, FastAPI, PostgreSQL 16, Elasticsearch 8, React 18, faster-whisper, SQLAlchemy 2, Redis, Taskiq, MinIO, TypeScript, Vite, aiogram 3.28, Demucs, hls.js DotSound начинался как способ собрать музыку из Telegram и стримингов в одном плеере без рекламы, а вырос в экосистему из нескольких сервисов. Backend держит API, очередь задач и HLS-стриминг с дедупом треков по содержимому; отдельный pull-based GPU-воркер по HMAC-протоколу снимает вокал и распознаёт лирику, не открывая наружу ни одного порта. Бизнес-правила и политика выдачи рекомендаций вынесены в закрытое ядро: экосистема построена так, чтобы открытый код показывал архитектуру, не раскрывая логику ранжирования. Overview: Загружай свои треки или подтягивай музыку из VK, SoundCloud, Spotify, YouTube и Яндекс Музыки: всё в одном плеере без рекламы. Заходишь через Telegram: открыл, нашёл, послушал. Лирика появляется построчно сама, подборки подстраиваются под вкус, а тяжёлое (ASR, разделение вокала, эмбеддинги) считает отдельный GPU-воркер. Metrics: ~3 месяца: от первого коммита до рабочего продукта 395 k+: строк кода в четырёх репозиториях 974: коммитов в четырёх репозиториях 543: API-эндпоинтов в бэкенде 3.3k: автотестов в четырёх репозиториях 17: типов GPU-задач в воркере 241: миграций базы данных Capabilities: - Загрузка прямо в плеере: Трек заливается из самого веб-плеера: устойчивая докачка кусками, проверка дублей ещё до отправки, своя обложка и видео. Ни отдельной формы, ни приложения для установки. - Авто-лирика (ASR): Demucs снимает вокал, faster-whisper расшифровывает и синхронизирует текст построчно с тайм-кодами. Слова появляются сами. - HLS + дедуп по содержимому: Адаптивный HLS поверх content-addressed storage: один и тот же трек хранится один раз для всех, сегменты кешируются как immutable. - Поиск по тексту и метаданным: Полнотекстовый Elasticsearch-индекс по метаданным и распознанной лирике с ранжированием по популярности. - Личные подборки и радио: Daily Mix, Weekly Mix, жанровые подборки и бесконечное радио от любого трека: лента подстраивается под то, что слушаешь. - Совместные плейлисты: Плейлисты с совместным редактированием и обложкой-коллажем, которая собирается сама из обложек добавленных треков. - Telegram как точка входа: Тонкий бот: вход в плеер одним тапом, inline-поиск треков в любом чате, лайки и подборки прямо в Telegram. Туда же приходят уведомления о входах и готовности задач. - Импорт из источников: Загружай свои треки прямо из плеера или импортируй из SoundCloud, YouTube, VK, Яндекс Музыки и Spotify: каталог наполняется без лишних шагов. - GPU-офлоад по HMAC: Воркер сам забирает задачи по HMAC и считает лирику и рекомендации на GPU. Никаких открытых портов наружу. - Модерация и закон: Жалобы на треки, авто-скрытие по порогу и админ-модерация. Часть соц-функций (чаты, комментарии) сознательно отключена под требования к ОРИ по 149-ФЗ. Timeline: - 27 Mar 2026: Старт проекта: первый коммит - 31 Mar 2026: Адаптивный HLS-стриминг - 12 Apr 2026: PrivateCore: закрытое ядро - 22 Apr 2026: ComputeWorker: GPU-воркер - 24 Apr 2026: Поиск, импорт и хранилище по содержимому - 26 Apr 2026: Рекомендации и радио - 7 May 2026: iOS-редизайн интерфейса - 10 May 2026: Право и модерация - 17 May 2026: Офлайн и прод-хардинг - Jun 2026: Сейчас: source-available и стабилизация ## DotLearn ### DotLearn (.learn) URL: https://info.dotcore.lol/en/projects/dotlearn Status: active · Category: platform · Started: 9 Jun 2026 Repos: DotLearn (monorepo): https://github.com/network-user/DotLearn Stack: TypeScript 5, React 18, Vite 5, NestJS 10, Zod, TanStack Router, Tailwind, sql.js, Pyodide, Monaco, Dexie / IndexedDB, ts-fsrs, MDX + Shiki, Turborepo, Elasticsearch DotLearn was built for individual, accelerated interview prep: instead of a fixed curriculum, a topic you actually need. Request it, and the lesson-forge AI agent builds a learning environment around it: theory with interactive visualizations, exercises and tests checked right in the browser. The project is open: the community can propose topics via a pull request or a submission form, or you can self-host it and study entirely on your own. Overview: You put the lesson topic into words yourself, a free-form request, even for one specific interview question. Once you ask, the agent gets to work: lesson-forge checks the topic for conflicts with the existing catalog and generates a package, MDX theory and YAML exercises that are automatically validated in the browser runtime. Everything gets committed to the repo, not written to a database, which means any topic can be forked, extended, or fixed with a normal pull request. Alongside the topics sits a ready-made bank of 1449 interview questions across 9 tracks, also with a "how to answer" breakdown, exercises, and its own flashcard mode. Code runs in a Web Worker where 15 network APIs are neutralized at startup: fetch, WebSocket, RTCPeerConnection, BroadcastChannel, and others. What you write cannot send data out or open a hidden channel: that's architecture, not policy. Progress, notes, bookmarks, and FSRS flashcards live in IndexedDB; the backend is optional and the platform installs as a PWA for full offline use. Configurable settings include content language (RU/EN on the fly), exercise difficulty, daily goal, font, text size, and Monaco editor preferences. Metrics: ~3 недели: from first commit to production hardening 79 k+: lines of code: apps and packages 267 k+: lines of content: 62 topics in MDX and YAML 1449: interview questions across 9 tracks 7: exercise types · sql.js + Pyodide in WASM 50: commits to a production release 380: automated tests (vitest) Capabilities: - Topics as code: Each topic is stored as files in the repo: theory in MDX, exercises in YAML. It's not a database row, so a fix can land as a normal pull request. - The lesson-forge AI agent: The AI writes a whole course itself (theory and exercises), validates it, and solves its own exercises in the sandbox before opening a PR. - Code in the browser: sql.js and Pyodide in Web Workers plus a Monaco editor: Python and SQL genuinely execute in the browser, no server involved. - Seven exercise types: From a quiz to a Python function: every type grades itself automatically, and the most unexpected one, git-challenge, simulates real Git right in the browser. - Interview question bank: 1449 questions across 9 tracks, from Python and frontend to DevOps, AQA and 1C, each with a "how to answer" breakdown, plus flashcard and exam modes. - Flashcards that remind you on their own: The FSRS algorithm decides when a card is due: answer confidently and you see it less, start forgetting and it comes back sooner. - Local-first: Opens on localhost with no backend, no accounts, and no internet, and installs as a PWA for full offline use. - Community and your own server: Topic proposals via PR or form, moderation in a TOTP two-factor admin, self-hosting in Docker. Timeline: - 9 Jun 2026: Local-first player - 11 Jun 2026: Content explosion - 16 Jun 2026: Content and flashcards - 24 Jun 2026: Production hardening - 30 Jun 2026: Final polish ### DotLearn (.учёба) URL: https://info.dotcore.lol/projects/dotlearn Status: active · Category: platform · Started: 9 Jun 2026 Repos: DotLearn (monorepo): https://github.com/network-user/DotLearn Stack: TypeScript 5, React 18, Vite 5, NestJS 10, Zod, TanStack Router, Tailwind, sql.js, Pyodide, Monaco, Dexie / IndexedDB, ts-fsrs, MDX + Shiki, Turborepo, Elasticsearch DotLearn создавался для индивидуальной, ускоренной подготовки к собеседованиям: вместо готовой программы, тема, которая нужна именно тебе. Заказываешь её, и AI-агент lesson-forge строит вокруг неё учебную среду: теорию с интерактивными визуализациями, тесты и упражнения с проверкой прямо в браузере. Проект в открытом доступе, поэтому сообщество может предлагать свои темы через pull request или форму заявки, либо разворачиваешь его у себя и готовишься полностью в одиночку. Overview: Тему для урока формулируешь сам: произвольным текстовым запросом, хоть под конкретный вопрос с собеседования. После запроса начинается работа агента: lesson-forge проверяет тему на конфликты с каталогом и генерирует пакет, MDX-теорию и YAML-задачи, прошедшие автоматическую валидацию в браузерном рантайме. Всё это коммитится в репо, а не записывается в базу, поэтому тему можно форкнуть, расширить или исправить обычным pull request. Рядом с темами есть готовый банк из 1449 вопросов с собеседований на 9 направлений, тоже с разбором «как отвечать», упражнениями и отдельным режимом флэшкарт. Код выполняется в Web Worker, где при старте нейтрализуются 15 сетевых API: fetch, WebSocket, RTCPeerConnection, BroadcastChannel и другие. Написанный код не может ни отправить данные, ни открыть скрытый канал: это не политика, это архитектура. Прогресс, заметки, закладки и FSRS-карточки для интервального повторения живут в IndexedDB; бэкенд опционален, платформа ставится как PWA и работает офлайн. Из настроек: язык контента (RU/EN на лету), сложность упражнений, дневная цель, шрифт, размер текста и параметры Monaco-редактора. Metrics: ~3 недели: от первого коммита до прод-харденинга 79 k+: строк кода: apps и packages 267 k+: строк контента: 62 темы в MDX и YAML 1449: вопросов для собеседований в 9 направлениях 7: типов упражнений · sql.js + Pyodide в WASM 50: коммитов до продакшн-релиза 380: автотестов (vitest) Capabilities: - Темы как код: Каждая тема хранится файлами в репозитории: теория в MDX, упражнения в YAML. Это не строка в базе, поэтому правку можно предложить обычным pull request. - AI-агент lesson-forge: AI сам пишет курс (теорию и упражнения), валидирует его и решает свои же задачи в песочнице, прежде чем открыть PR. - Код в браузере: sql.js и Pyodide в Web Workers плюс Monaco-редактор: Python и SQL реально исполняются в браузере, без сервера. - Семь типов упражнений: От квиза до Python-функции: каждый тип проверяется автоматически, а самый неожиданный, git-challenge, моделирует настоящий Git прямо в браузере. - Банк вопросов для собеседований: 1449 вопросов в 9 направлениях, от Python и frontend до DevOps, AQA и 1С, с разбором «как отвечать», плюс режимы флэшкарт и экзамена. - Карточки, которые сами напоминают: FSRS-алгоритм считает, когда карточку пора повторить: чем увереннее отвечаешь, тем реже её видишь, а начал забывать, значит она вернётся раньше. - Local-first: Открывается на localhost без бэкенда, аккаунтов и интернета, а ставится как PWA для полного офлайна. - Сообщество и свой сервер: Заявки на темы принимаются через PR или форму, модерация идёт в админке с TOTP-двухфакторкой, а self-hosting разворачивается в Docker. Timeline: - 9 Jun 2026: Local-first плеер - 11 Jun 2026: Взрыв контента - 16 Jun 2026: Контент и flashcards - 24 Jun 2026: Прод-хардинг - 30 Jun 2026: Финальная доводка ## DotMath ### DotMath (.schet) URL: https://info.dotcore.lol/en/projects/dotmath Status: active · Category: bot · Started: 14 Feb 2026 Repos: DotMath (telegram-bot): https://github.com/network-user/DotMathBot Stack: Python 3.12, aiogram 3.15, PostgreSQL 16, SQLAlchemy 2, asyncpg, Redis, APScheduler, Alembic, pytest Every solve in DotMath travels one lane: problem, points, leaderboard spot, streak. That single result gets read four different ways at once: streak, total solved, accuracy, and a weighted score where harder problems count more. The daily challenge runs on its own mechanics: a seed makes the same 10 problems land for everyone, and UNIQUE constraints in the database keep a race for the first click from breaking the one-attempt-per-person rule. It started 14 Feb 2026 as a one-day MVP; today it's roughly 9k lines, with a training FSM that lives in Redis and survives a container restart, and a database that ships itself off to backup via pg_dump on a schedule. Overview: A bilingual Telegram mental-math trainer built around retention: day-streaks, reminders, and a leaderboard that reads the same result four ways: streak, solved, accuracy, and a weighted score where harder problems count more. A shared daily challenge pits everyone against the same set, and retry-mistakes assembles a separate session from whatever you missed. Metrics: ~4 месяца: from the first commit to now 9k: lines of code 28: commits 213: automated tests 48: command and callback handlers Capabilities: - Drills: Seven operation types, from addition to powers and square roots, across three difficulty levels. Pick an answer from the choices or type it yourself. - Daily challenge: One shared set of 10 problems for the calendar day, a single attempt per person, and a separate daily leaderboard by correct answers and time. - A four-way leaderboard: The same result reads four ways: streak, total solved, accuracy, and weighted points where harder problems count more. - Habit and retention: A day-streak holds until you skip a day; configurable reminders bring you back, and Quick Start launches your favorite mode in one tap. - Retry mistakes: A separate session is assembled only from the problems you got wrong or skipped, and correct answers stay hidden during it. - RU + EN and restart resilience: Full localization with an on-the-fly language switch, active-training state in Redis, and daily database backups. Timeline: - 14 Feb 2026: .schet kickoff - 4 Mar 2026: Admin panel and leaderboard privacy - 13 May 2026: SQLite → PostgreSQL - 30 May 2026: Daily challenge, mistake review, production wiring - 16 Jun 2026: Closed network, Postgres-only - Jun 2026: Now: secrets and permissions under lock ### DotMath (.счёт) URL: https://info.dotcore.lol/projects/dotmath Status: active · Category: bot · Started: 14 Feb 2026 Repos: DotMath (telegram-bot): https://github.com/network-user/DotMathBot Stack: Python 3.12, aiogram 3.15, PostgreSQL 16, SQLAlchemy 2, asyncpg, Redis, APScheduler, Alembic, pytest Каждое решение в DotMath идёт по одной дорожке: пример, очки, место в рейтинге, серия дней. Один и тот же результат читается сразу в четырёх срезах: стрик, всего решено, точность, взвешенные очки, где сложное стоит дороже. У дневного челленджа своя механика: seed делает набор из 10 задач одинаковым для всех, а UNIQUE-констрейнты в базе не дают гонке за первый клик сломать «одну попытку на человека». Началось 14 февраля 2026 года как MVP на день, а сейчас это ~9 тысяч строк, где тренировочная FSM живёт в Redis и переживает рестарт контейнера, а база регулярно уходит в бэкап через pg_dump. Overview: Двуязычный Telegram-тренажёр устного счёта, построенный вокруг удержания: серии дней, напоминания и рейтинг, который читает один и тот же результат сразу с четырёх сторон: стрик, решено, точность и взвешенные очки, где сложное стоит дороже. Общий челлендж дня сравнивает всех на одном наборе задач, а работа над ошибками собирает отдельную сессию из того, что не далось. Metrics: ~4 месяца: от первого коммита до сейчас 9k: строк кода 28: коммитов 213: автотестов 48: обработчиков команд и колбэков Capabilities: - Тренировки: Семь типов операций, от сложения до степеней и квадратных корней, на трёх уровнях сложности. Можно выбирать ответ из вариантов или писать его сам. - Челлендж дня: Общий для всех набор из 10 задач на календарный день, один зачёт на человека и отдельный дневной рейтинг по верным ответам и времени. - Рейтинг в четыре среза: Один и тот же результат читается с четырёх сторон: серия, всего решено, точность и взвешенные очки, где сложное стоит дороже. - Привычка и удержание: Серия дней держится, пока не пропустишь день; настраиваемые напоминания возвращают к тренировке, а быстрый старт запускает любимый режим одной кнопкой. - Работа над ошибками: Отдельная сессия собирается только из задач, в которых ты ошибся или пропустил: правильные ответы во время неё не показываются. - RU + EN и стойкость к рестарту: Полная локализация с переключением языка на лету, состояние активной тренировки в Redis и ежесуточные бэкапы базы. Timeline: - 14 Feb 2026: Старт .счёта - 4 Mar 2026: Админ-панель и приватность рейтинга - 13 May 2026: SQLite → PostgreSQL - 30 May 2026: Челлендж дня, работа над ошибками, прод-обвязка - 16 Jun 2026: Закрытая сеть, Postgres-only - Jun 2026: Сейчас: секреты и права под замком ## DotAgents ### DotAgents (.agents) URL: https://info.dotcore.lol/en/projects/dotagents Status: beta · Category: tool · Started: 19 Apr 2026 Repos: DotAgents (daemon-cli): https://github.com/network-user/DotAgents Stack: Python 3.12, aiogram 3.27, FastAPI 0.111, SQLite, SQLAlchemy 2, Alembic, Typer, structlog, argon2id, HMAC nonce, Telegram Bot API, pytest The notification lands at the moment you least expect it: the agent hit a line that touches the filesystem or the network and froze. The screen shows the exact command and two buttons, with a countdown ticking down. Miss it or say nothing, and the action is denied, not run: fail-closed is the default, not a setting you flip. Underneath sits a daemon hooked into Cursor, Claude Code, and Antigravity, long-polling your phone for that decision; on top of it are three operating modes, a layered models/repos/services architecture, and a Typer CLI that wires the hooks into all three agents with one command. Overview: Cursor or Claude Code runs on your machine. DotAgents sits beside it and hands you control through Telegram. A live message showing what the agent is doing right now. An approve request the moment it reaches for a risky command. A follow-up queued while you're away. All local: no cloud relay, code never leaves the machine. Metrics: 10 дней: of active build from first commit to a working MVP, then polish ~18k: lines of Python with tests 33: commits in a single repository 140: pytest tests 15: commands in the Telegram bot localhost: loopback: code never leaves the machine Capabilities: - Approve / deny from your phone: The agent reaches for a risky command, the hook freezes it and sends a request to Telegram: the command itself and two buttons. Allow runs it, deny or silence rejects it. Fail-closed by default, not by a setting. - Live status in one message: While the agent runs, one editable message lives in the chat: what it's doing right now, which files it touches, the latest reply. The stop button is right there, no IDE needed. - Spawn and follow-ups from the chat: You can start an agent session straight from Telegram: the /new wizard walks from project to prompt. The next task queues FIFO and reaches the agent the moment it frees up, and the transcript tail reads right there, no IDE. - Three agents, one bridge: Hooks install into Cursor, Claude Code, and Antigravity with one Typer CLI command. For Cursor and Claude Code a session can also be spawned from Telegram; Antigravity connects through hooks only for now. - Security-first, all local: Argon2id at the gate, HMAC plus a nonce on every callback, an owner whitelist, a full audit log, and an API bound to 127.0.0.1 only. No cloud relay, and no code leaving the machine. - Three modes per session: remote asks on every protected action, readonly lets it through and only notifies, standby silently rejects the dangerous. The mode switches both globally and per individual session. Timeline: - 19 Apr 2026: Stage 1: a safety bridge in a day - 22 Apr 2026: Stage 2: agents straight from Telegram - 23 Apr 2026: Telegram Mini App - 29 Apr 2026: Sessions and transcript sync - 1 Jul 2026: Hardening before release - Next: Stage 2 remainder: voice and a universal MCP ### DotAgents (.агенты) URL: https://info.dotcore.lol/projects/dotagents Status: beta · Category: tool · Started: 19 Apr 2026 Repos: DotAgents (daemon-cli): https://github.com/network-user/DotAgents Stack: Python 3.12, aiogram 3.27, FastAPI 0.111, SQLite, SQLAlchemy 2, Alembic, Typer, structlog, argon2id, HMAC nonce, Telegram Bot API, pytest Уведомление приходит в момент, когда меньше всего этого ждёшь: агент дошёл до строки, которая трогает файловую систему или сеть, и встал. На экране сама команда и две кнопки, счётчик тикает вниз. Не успел или не ответил, и действие отклонено, а не выполнено: fail-closed по умолчанию, а не по настройке. Держит эту связку демон, вшитый хуком в Cursor, Claude Code и Antigravity и long-poll'ящий решение с телефона; поверх три режима работы, слои models/repos/services под капотом и Typer-CLI, который сам разводит хуки по всем трём агентам одной командой. Overview: Cursor или Claude Code работает на твоей машине, а DotAgents стоит рядом и отдаёт тебе контроль через Telegram. Живое сообщение с тем, что агент делает прямо сейчас. Запрос на approve, когда он тянется к рискованной команде. Follow-up в очередь, пока ты в дороге. Всё локально: облачного релея нет, код с машины не уходит. Metrics: 10 дней: активной разработки от первого коммита до рабочего MVP, дальше полировка ~18k: строк Python с тестами 33: коммита в одном репозитории 140: тестов pytest 15: команд в Telegram-боте localhost: loopback: код не уходит с машины Capabilities: - Approve / deny с телефона: Агент занёс руку над рискованной командой, хук замораживает выполнение и шлёт запрос в Telegram: сама команда и две кнопки. Allow запускает, deny или молчание отклоняют. Fail-closed по умолчанию, а не по настройке. - Live-статус одним сообщением: Пока агент работает, в чате живёт одно редактируемое сообщение: что он делает прямо сейчас, какие файлы трогает, последний ответ. Стоп-кнопка там же, IDE открывать не нужно. - Спавн и follow-up из чата: Сессию агента можно завести прямо из Telegram: мастер /new проведёт от проекта к промпту. Следующая задача встаёт в FIFO-очередь и прилетает агенту, как только он освободится, а хвост транскрипта читается тут же, без IDE. - Три агента, один мост: Хуки ставятся в Cursor, Claude Code и Antigravity одной командой Typer-CLI. Для Cursor и Claude Code сессию можно ещё и заспавнить из Telegram; Antigravity пока подключается только через хуки. - Security-first, всё локально: Argon2id на входе, HMAC плюс nonce на каждом callback, whitelist владельца, полный audit-log, а API живёт только на 127.0.0.1. Ни облачного релея, ни выхода кода с машины. - Три режима на сессию: remote спрашивает по каждому защищённому действию, readonly пропускает и только уведомляет, standby молча отклоняет опасное. Режим переключается и глобально, и по отдельной сессии. Timeline: - 19 Apr 2026: Stage 1: мост безопасности за день - 22 Apr 2026: Stage 2: агенты прямо из Telegram - 23 Apr 2026: Telegram Mini App - 29 Apr 2026: Сессии и синхронизация транскрипта - 1 Jul 2026: Хардинг перед публикацией - Next: Stage 2 остаток: голос и универсальный MCP ## DotWorkBot ### DotWorkBot (.work) URL: https://info.dotcore.lol/en/projects/dotworkbot Status: active · Category: bot · Started: 6 May 2026 Repos: DotWorkBot (telegram-bot): https://github.com/network-user/DotWorkBot Stack: Python 3.12, aiogram 3.27, PostgreSQL 16, SQLAlchemy 2, Redis, taskiq, MinIO, Alembic, asyncpg, structlog, Docker DotWorkBot has no website and nothing to install: just a Telegram chat where a shift shows up as a message, and a 'claim' button a worker taps to take it. Behind that plain exchange sits a dedicated taskiq worker that keeps the marketplace running on its own: it sends arrival reminders, releases no-shows, and closes expired orders. To stop two worker instances from duplicating the same job, it grabs a Redis leader lock via SET NX EX, while Postgres and MinIO backups go out as AES-encrypted archives through pyzipper. The production build has been going since May 2026. Overview: A one-off shift marketplace that lives entirely in Telegram: an employer posts a shift, a worker takes it, and a dedicated taskiq worker keeps the marketplace's 'physics' running on its own, nudging arrivals, releasing no-shows, and closing expired orders as the single leader via a Redis lock. Metrics: 11k: lines of code 3: roles: worker · employer · admin 12: database migrations VPS: auto-deploy with health rollback Capabilities: - Roles and flows: Worker, employer, and admin get separate menus and access filters; worker sign-up is a step-by-step FSM with phone, city, and geolocation. - Orders and shifts: Order creation, multi-slot assignments, an open → in_progress → completed/cancelled lifecycle, and notifications to all participants. - Operational control: The taskiq worker sends arrival reminders, releases unconfirmed workers, and closes expired orders by itself. - Broadcasts and safety: New-order broadcasts targeted by city with dedup, admin broadcasts, plus rate-limiting and ban checks in middleware. - Backups and deploy: AES-encrypted backups (pg_dump + a mirror of the MinIO bucket), restore scripts, and VPS auto-deploy with health-check rollback. - Ratings and storage: Worker ratings in a dedicated model and order photos in S3-compatible storage: large binaries kept out of the relational DB. Timeline: - 6 May 2026: Start and MVP - 7-8 May 2026: Production, backups, and monitoring - 1 Jul 2026: Hardening and audit before release ### DotWorkBot (.работа) URL: https://info.dotcore.lol/projects/dotworkbot Status: active · Category: bot · Started: 6 May 2026 Repos: DotWorkBot (telegram-bot): https://github.com/network-user/DotWorkBot Stack: Python 3.12, aiogram 3.27, PostgreSQL 16, SQLAlchemy 2, Redis, taskiq, MinIO, Alembic, asyncpg, structlog, Docker У DotWorkBot нет ни сайта, ни приложения для установки: есть чат в Telegram, куда прилетает сообщение о смене, и кнопка «взять», по которой её тут же разбирает работник. За этой простой перепиской стоит отдельный taskiq-воркер, который держит биржу в рабочем состоянии сам: шлёт напоминания о выходе, снимает бронь с неявившихся и закрывает просроченные заказы. Чтобы два инстанса воркера не продублировали одну и ту же операцию, он берёт лидер-лок в Redis через SET NX EX, а бэкапы Postgres и MinIO уходят в шифрованные AES-архивы через pyzipper. Прод собирался с нуля начиная с мая 2026. Overview: Биржа разовых смен целиком в Telegram: работодатель публикует смену, работник её берёт, а отдельный taskiq-воркер сам держит «физику» биржи, напоминает о выходе, освобождает неподтвердившихся и закрывает просроченные заказы, оставаясь единственным лидером через Redis-лок. Metrics: 11k: строк кода 3: роли: работник · работодатель · админ 12: миграций базы данных VPS: авто-деплой с health-rollback Capabilities: - Роли и маршруты: Работник, работодатель и админ получают разные меню и фильтры доступа; регистрация работника: пошаговый FSM с телефоном, городом и геолокацией. - Заказы и смены: Создание заказа, мульти-слотовые назначения, жизненный цикл open → in_progress → completed/cancelled и уведомления всем участникам. - Операционный контроль: taskiq-воркер шлёт напоминания о выходе, освобождает неподтверждённых работников и сам закрывает просроченные заказы. - Рассылки и защита: Рассылка новых заказов с таргетингом по городу и дедупом, админ-рассылки, плюс rate-limit и бан-проверки в middleware. - Бэкапы и деплой: AES-зашифрованные бэкапы (pg_dump + зеркало бакета MinIO), restore-скрипты и авто-деплой на VPS с откатом по health-check. - Рейтинги и хранилище: Оценки работников в отдельной модели и фотографии заказов в S3-совместимом хранилище: большие бинарники вне реляционной базы. Timeline: - 6 May 2026: Старт и MVP - 7-8 May 2026: Прод, бэкапы и мониторинг - 1 Jul 2026: Хардненинг и аудит перед публикацией ## DotTraceIP ### DotTraceIP (.trace) URL: https://info.dotcore.lol/en/projects/dottraceip Status: active · Category: tool · Started: 15 Mar 2026 Repos: DotTraceIP (cli): https://github.com/network-user/DotTraceIP Stack: Python 3.12, asyncio, aiohttp, aiohttp-socks, dnspython, ipwhois, Rich, pytest, pytest-asyncio, mypy, GitHub Actions The shape is simple: a text file of addresses in, TXT, JSON, CSV, or HTML out, with no server and no browser dashboard in between. Under the hood it's not a sequential walk but a fan-out: the engine holds a semaphore over N IPs at once and queries six sources per address in parallel via asyncio.gather, so if Spamhaus times out or bgpview is down, the rest of the fields still make it into the report. The same run_scan call works identically from a headless cron job on a server or from the Rich menu in a terminal, and the only difference is where the live dashboard renders. Overview: An async CLI for bulk IP analysis: for each address six sources, namely geolocation, ASN and BGP prefix, reverse DNS, and reputation (AbuseIPDB, Spamhaus), are queried in parallel via asyncio.gather. A single failing source never breaks the rest, and the report is written to TXT, JSON, CSV, or a self-contained HTML. Metrics: 1 день: from first commit to a working async core ~2.4k: lines of Python with tests 82: pytest-asyncio tests, green CI 500: IPs in parallel: the semaphore ceiling 6: data sources per IP Capabilities: - 6 sources per IP: Geolocation and ASN (ip-api), BGP prefix and AS name (Team Cymru, bgpview fallback), owner network (RDAP), reverse DNS, and reputation (AbuseIPDB, Spamhaus): every address gets a dossier from six independent sources. - Async fan-out with a semaphore: Up to 500 IPs in parallel, and per address the six sources gather in a single asyncio.gather. A failing source never drops the rest or interrupts the scan: its fields just stay at defaults. - Headless or a live dashboard: The same run_scan runs both as a one-line cron job and from an interactive terminal menu. Headless streams results line by line; interactive draws a live Rich dashboard with progress and color-coded reputation. - A report in four formats: TXT is written during the scan itself, and the output also includes JSON, CSV, and a self-contained HTML with column sorting, without a single external dependency or CDN. - Proxies and privacy: HTTP, SOCKS4, and SOCKS5 with random pool rotation against rate limits and credential masking. If a proxy is set but fails to parse, HTTP sources don't fall back to a direct connection, so the real IP never leaks. - Resilience and backoff: A failing source never breaks the report, and on 429 ip-api backs off while respecting the X-Ttl header. Repeated IPs in logs are deduped before the scan even starts. Timeline: - 15 Mar 2026: Start: an async core in a day - 23 Jun 2026: Headless, resilience, and CI - 1 Jul 2026: Publication and audit ### DotTraceIP (.след) URL: https://info.dotcore.lol/projects/dottraceip Status: active · Category: tool · Started: 15 Mar 2026 Repos: DotTraceIP (cli): https://github.com/network-user/DotTraceIP Stack: Python 3.12, asyncio, aiohttp, aiohttp-socks, dnspython, ipwhois, Rich, pytest, pytest-asyncio, mypy, GitHub Actions Формат простой: текстовый файл с адресами на вход, TXT, JSON, CSV или HTML на выход, и ни сервера, ни браузерного дашборда между ними. Внутри это не последовательный обход, а веер: движок держит семафор на N IP одновременно и по каждому адресу параллельно опрашивает шесть источников через asyncio.gather, так что если Spamhaus не ответил или bgpview лёг, остальные поля всё равно доедут до отчёта. Тот же run_scan одинаково запускается и из headless-команды в cron на сервере, и из Rich-меню в терминале, разница только в том, куда идёт live-дашборд. Overview: Асинхронный CLI для массового разбора IP: по каждому адресу шесть источников, а именно геолокация, ASN и BGP-префикс, обратный DNS и репутация (AbuseIPDB, Spamhaus), опрашиваются параллельно через asyncio.gather. Сбой одного источника не роняет остальные, а отчёт пишется в TXT, JSON, CSV или самодостаточный HTML. Metrics: 1 день: от первого коммита до рабочего async-ядра ~2.4k: строк Python с тестами 82: теста pytest-asyncio, зелёный CI 500: IP в параллель: потолок семафора 6: источников данных на каждый IP Capabilities: - 6 источников на каждый IP: Геолокация и ASN (ip-api), BGP-префикс и имя автономной системы (Team Cymru, фолбэк bgpview), сеть владельца (RDAP), обратный DNS и репутация (AbuseIPDB, Spamhaus): по каждому адресу собирается досье из шести независимых источников. - Async-веер с семафором: До 500 IP параллельно, а по каждому адресу шесть источников собираются одним asyncio.gather. Отказ любого источника не роняет остальные и не прерывает скан: его поля просто остаются дефолтными. - Headless или живой дашборд: Тот же run_scan запускается и одной командой из cron, и из интерактивного меню в терминале. В headless результат льётся построчно, в интерактиве рисуется живой Rich-дашборд с прогрессом и цветной репутацией. - Отчёт в четырёх форматах: TXT пишется прямо во время скана, а на выходе ещё JSON, CSV и самодостаточный HTML с сортировкой по столбцам, без единой внешней зависимости и CDN. - Прокси и приватность: HTTP, SOCKS4 и SOCKS5 со случайной ротацией пула против rate-limit и маскировкой кредов. Если прокси задан, но не распарсился, HTTP-источники не уходят в прямое соединение, поэтому реальный IP не утекает. - Отказоустойчивость и backoff: Сбойный источник не роняет отчёт, а ip-api при 429 уходит в backoff, уважая заголовок X-Ttl. Повторы IP в логах отсекаются дедупом ещё до скана. Timeline: - 15 Mar 2026: Старт: async-ядро за день - 23 Jun 2026: Headless, устойчивость и CI - 1 Jul 2026: Публикация и аудит # DotCore ecosystem (infrastructure) ### dotcore-skills (.skills) Repo: https://github.com/network-user/dotcore-skills Stack: PowerShell, Bash, Python 3, JSON, Markdown, GitHub Actions An Agent Skills monorepo for the DotCore ecosystem: each skill is a folder following the agentskills.io spec, and two parallel installers (PowerShell and bash+Python) lay it into 10+ coding-agent directories in a single pass over one shared JSON path config. This tooling generates the READMEs and rules across every DotCore project, including this site. Монорепо Agent Skills экосистемы DotCore: каждый скилл это папка по спецификации agentskills.io, а два параллельных установщика (PowerShell и bash+Python) раскладывают её в каталоги 10+ кодинг-агентов одним проходом поверх общего JSON-конфига путей. Этим тулингом собраны README и правила всех проектов DotCore, включая этот сайт.