Telegram for PS Vita · Telegram для PS Vita
Current version / Текущая версия: 0.37.53.
English · Русский · Build / Сборка · Licenses / Лицензии
VitaGram is an unofficial homebrew Telegram client for PS Vita, built with VitaSDK, vita2d and TDLib. Use the console's buttons and touchscreen to read chats, send messages and attachments, and record voice messages and video notes.
VitaGram is an AI-Vibecoded project. AI tools are used in development, documentation and image localization, with human direction and release decisions.
The project is under active development. See Limitations for supported media and features that are not yet available.
Releases · Report a bug · Native checks
| Chats | Conversation | Video |
|---|---|---|
![]() |
![]() |
![]() |
English text in these illustrations was translated from the original Russian screenshots.
- Chats: private conversations, groups, channels, Telegram folders, archive, search, forum topics and channel comments. Chat lists, history and media are cached.
- Messages: text, replies, forwarding, permission-aware deletion, standard emoji reactions and voting in polls, including quizzes and multiple-choice polls.
- Photos and files: albums, attachment batches of up to 10 items, fullscreen photos with rotation and 1–5× zoom (touch or right stick up/down), left-stick panning while zoomed, and saving files to a download folder.
- Stickers and GIFs: static and animated stickers, recent/favorite/installed sticker sets, saved GIFs and GIF search.
- Audio and video: supported media playback, progressive playback while downloading, voice-message recording and video notes from the front or rear camera. Fullscreen video: Left/Right selects 10-second seek steps; holding repeats faster after two and four seconds. The time and cursor update while held, and releasing applies the target and restores the prior play/pause state. Tap or drag the progress track to seek, including while the controls are hidden.
- Interface: native Vita keyboard, Cyrillic and color emoji, Light/Dark/VHBB themes, font size and interface language settings. Hold D-pad up/down or the left stick to scroll lists with acceleration. Settings → Scroll speed selects Normal, Fast or Very fast: up to 1, 2 or 3 pages per 0.5 seconds. Normal is the default. Dark is the initial theme.
- Connection and privacy: MTProxy, SOCKS5 and HTTP CONNECT proxies, proxy-link and QR import, optional data encryption and automatic screen locking.
- Updates: signed VPK packages from GitHub Releases, with manual and automatic update checks.
You need a homebrew-enabled PS Vita with VitaShell, internet access and enough free space for the package and cached media.
- Download
vitagram.vpkfrom a published release and copy it to the console. - Install the VPK through VitaShell and launch VitaGram from LiveArea.
- Choose whether to encrypt local data. Keep the chosen unlock key safe.
- Sign in with your phone number, Telegram login code and, if enabled, your two-step verification password. Or tap Sign in with a QR code (or press Square) and scan the Vita screen from Telegram on your phone: Settings → Devices → Link Desktop Device. If enabled, two-step verification still requires your password. The login QR uses rounded modules and a central paper-plane badge with High error correction.
If a proxy is needed for login, press Start on the authorization screen to configure it. Select the proxy type and enter its details, then choose Save and apply. A proxy link or QR import also requires this confirmation.
The interface follows the console's language, falling back to English. Change it manually in Start → Language. English, Russian, German, French, Spanish, Italian, Dutch, Portuguese (Portugal/Brazil), Swedish, Danish, Norwegian, Finnish, Polish, Turkish, Japanese, Korean and Simplified/Traditional Chinese are included. British English uses the English catalog. Korean and Chinese chat text uses the corresponding font while that interface language is selected.
Start → Update checks for and installs a newer release. Automatic updates are enabled by default and begin about a minute after launch. With a Telegram proxy enabled, only manual checking is available: updates connect to GitHub directly.
Only signed packages are installed. VitaGram restarts after installation and preserves settings and account data. If manual installation is needed, follow the instructions shown in settings.
Data is stored in ux0:data/vitagram/. The db/ directory contains your Telegram
session and account data; files/ holds downloaded media. Cache retention and size
limits are configurable in settings. Do not share db/ or delete it to clear photos.
Start → Data encryption protects the database, downloaded media, cache indexes and settings with a text passphrase (at least 10 characters) or a console-button sequence (12–32 presses). A longer passphrase offers stronger protection against guessing. Encryption is bound to the console: copying the card to another Vita does not unlock the vault. A forgotten key cannot be recovered. Resetting the vault erases local account data and requires signing in again.
Encryption scope and limits
Encryption changes restart the app and convert existing files before Telegram starts. Interrupted or failed conversions resume on the next launch; until conversion finishes, some files may remain unencrypted. Auto-lock after inactivity or sleep hides the screen and pauses playback; background work continues, and decryption keys remain in RAM.
Downloaded files can briefly exist in plain form before sealing. Recordings, conversion scratch files, explicit exports and diagnostic logs are outside this protection. Encryption does not hide filenames or sizes and cannot protect data from software controlling the running console.
Without data encryption, console-derived keys protect the database/cache and obfuscate proxy credentials; OpenPSID is not a secret. Downloaded media remains unencrypted. SOCKS5 and HTTP proxy credentials travel unencrypted to the proxy; Telegram message traffic remains MTProto-encrypted.
Diagnostic logs are off by default. Enable individual logs in Start → Diagnostic logs. Review logs before sharing; report the app version, steps to reproduce, media type and any on-screen error without including credentials or account files. Settings → About contains project links and privacy notes.
- Media support is bounded by codecs, resolution and file size. The player supports H.264, VP8 and VP9; H.265/AV1 decoders are not included. Ordinary videos use the smallest compatible Telegram variant when available; fallback video limits are 720p by pixel area and 128 MiB.
- Progressive audio/video can start after a readable 256 KiB prefix, but some MP4 files need a complete download. While a video streams, seeking is limited to the already downloaded part; portrait-video preparation requires the completed file, and prepared portrait copies have additional seek restrictions.
- Calls, secret chats, group administration, paid/custom reactions, creating polls or editing forum topics, and searching for/installing sticker sets are not implemented.
- Presence follows Telegram privacy settings. Sticker-set and topic lists still need Telegram responses; cached previews do not provide fully offline menus.
VitaGram — неофициальный homebrew-клиент Telegram для PS Vita на VitaSDK, vita2d и TDLib. Кнопки консоли и сенсорный экран позволяют читать чаты, отправлять сообщения и вложения, записывать голосовые сообщения и видеокружки.
VitaGram — AI-Вайбкод. Инструменты искусственного интеллекта используются при разработке, подготовке документации и переводе изображений; направление работы и решения о выпуске задаёт человек.
Проект активно развивается. Поддержка медиа и ещё недоступные функции описаны в разделе «Ограничения».
Релизы · Сообщить об ошибке · Проверки на ПК
| Чаты | Переписка | Видео |
|---|---|---|
![]() |
![]() |
![]() |
- Чаты: личная переписка, группы, каналы, папки Telegram, архив, поиск, темы форумных групп и комментарии каналов. Списки чатов, история и медиа кэшируются.
- Сообщения: текст, ответы, пересылка, удаление с проверкой прав, обычные emoji-реакции и голосование в опросах, включая викторины и множественный выбор.
- Фото и файлы: альбомы, отправка до 10 вложений за раз, полноэкранные фото с поворотом и масштабом 100–500% (жестом или правым стиком вверх/вниз), перемещением левым стиком при увеличении, сохранение файлов в папку загрузок.
- Стикеры и GIF: статичные и анимированные стикеры, недавние, избранные и установленные наборы, сохранённые GIF и поиск анимаций.
- Аудио и видео: воспроизведение поддерживаемых медиа, просмотр во время загрузки, запись голоса и видеокружков с фронтальной или задней камеры.
- Интерфейс: системная клавиатура Vita, кириллица и цветные emoji, темы Светлая/Тёмная/VHBB, настройка размера шрифта и языка. Удержание стрелок вверх/вниз или левого стика прокручивает списки с ускорением. «Настройки → Скорость прокрутки»: «Норма», «Быстрая» и «Очень быстрая» — до 1, 2 и 3 страниц за 0,5 секунды. По умолчанию выбрана «Норма», тема тёмная.
- Подключение и приватность: MTProxy, SOCKS5 и HTTP CONNECT, импорт прокси по ссылке и QR-коду, необязательное шифрование данных и автоблокировка экрана.
- Обновления: подписанные VPK из GitHub Releases, ручная и автоматическая проверка.
Нужны PS Vita с поддержкой homebrew и VitaShell, доступ в интернет и свободное место для пакета и медиакэша.
- Скачайте
vitagram.vpkиз опубликованного релиза и перенесите на консоль. - Установите VPK через VitaShell и запустите VitaGram из LiveArea.
- Выберите, шифровать ли локальные данные. Сохраните выбранный ключ разблокировки.
- Войдите по номеру телефона, коду Telegram и, если включён, паролю двухэтапной аутентификации. Или нажмите «Войти по QR-коду» на экране (либо кнопку □) и отсканируйте экран Vita с телефона в Telegram: Настройки → Устройства → Подключить устройство. Если включена двухэтапная проверка, затем потребуется её пароль. QR для входа имеет скруглённый узор и значок самолётика в центре; используется высокий уровень коррекции ошибок.
Если для входа нужен прокси, нажмите Start на экране авторизации. Выберите тип, заполните данные и нажмите «Сохранить и применить». Импорт по ссылке или QR-коду тоже требует этого подтверждения.
Язык интерфейса выбирается по языку консоли; если каталога нет, используется английский. Ручной выбор — Start → Язык. Включены английский, русский, немецкий, французский, испанский, итальянский, нидерландский, португальский (Португалия/Бразилия), шведский, датский, норвежский, финский, польский, турецкий, японский, корейский, упрощённый и традиционный китайский. Британский английский использует английский каталог. Корейский и китайский текст в чатах использует соответствующий шрифт при выборе этого языка интерфейса.
Start → Обновление проверяет и устанавливает новый релиз. Автоматическое обновление включено по умолчанию и начинается примерно через минуту после запуска. При включённом прокси Telegram доступна только ручная проверка: обновления подключаются к GitHub напрямую.
Устанавливаются только подписанные пакеты. После установки VitaGram перезапускается; настройки и данные аккаунта сохраняются. Если нужна ручная установка, следуйте инструкции в настройках.
Данные находятся в ux0:data/vitagram/. Каталог db/ содержит сессию Telegram
и данные аккаунта, files/ — загруженные медиа. Срок хранения и размер кэша
задаются в настройках. Не публикуйте db/ и не удаляйте его ради очистки фото.
Start → Шифрование данных защищает базу, загруженные медиа, индексы кэша и настройки текстовой фразой (от 10 символов) или последовательностью кнопок (12–32 нажатия). Длинная фраза устойчивее к перебору. Шифрование привязано к консоли: перенос карты на другую Vita не разблокирует хранилище. Забытый ключ восстановить нельзя. Сброс хранилища удаляет локальные данные аккаунта и требует повторного входа.
Что защищает шифрование и каковы его ограничения
Изменение режима шифрования перезапускает приложение и преобразует существующие файлы до подключения Telegram. Прерванное или неудачное преобразование продолжится при следующем запуске; до завершения часть файлов может оставаться открытой. Автоблокировка после бездействия или сна закрывает экран и ставит воспроизведение на паузу; фоновые операции продолжаются, ключи остаются в оперативной памяти.
Загружаемые файлы кратковременно существуют открытыми до шифрования. Записи, временные файлы конвертации, явный экспорт и диагностические журналы не защищены этим режимом. Шифрование не скрывает имена и размеры файлов и не защищает от программ, контролирующих работающую консоль.
Без шифрования данных ключи на основе идентификатора консоли защищают базу/кэши и обфусцируют реквизиты прокси; OpenPSID не является секретом. Загруженные медиа остаются открытыми. Логин и пароль SOCKS5/HTTP передаются прокси без шифрования; сообщения Telegram остаются зашифрованными MTProto.
Диагностические журналы выключены по умолчанию. Отдельные журналы включаются в Start → Журналы диагностики. Перед отправкой просмотрите содержимое; в отчёте укажите версию, шаги воспроизведения, тип медиа и ошибку на экране, исключив реквизиты и файлы аккаунта. Настройки → О проекте содержит ссылки и сведения о приватности.
- Поддержка медиа зависит от кодека, разрешения и размера. Есть H.264, VP8 и VP9; декодеры H.265/AV1 не включены. Для обычных видео выбирается минимальный совместимый вариант Telegram; при его отсутствии действуют лимиты исходника: 720p по площади кадра и 128 МиБ.
- Просмотр видео/аудио может начаться после непрерывных 256 КиБ от начала файла, но некоторым MP4 нужна полная загрузка. Во время потокового просмотра перемотка доступна в пределах уже загруженной части; подготовка вертикального видео требует докачки, у подготовленных вертикальных копий есть дополнительные ограничения перемотки.
- В полноэкранном видео влево/вправо выбирает позицию с шагом 10 секунд. Удержание ускоряет повтор через 2 и 4 секунды. Отметка и время обновляются при удержании, переход выполняется после отпускания с сохранением прежнего режима воспроизведения. Касание или перетаскивание по шкале тоже перематывает, даже если панель скрыта.
- Не реализованы звонки, секретные чаты, управление группами, платные/пользовательские реакции, создание опросов, редактирование тем форума, поиск и установка наборов стикеров.
- Статусы присутствия зависят от приватности Telegram. Списки наборов стикеров и тем требуют ответа сервера; кэш миниатюр не делает эти меню полностью офлайн.
Build on Linux or WSL with VitaSDK and its ARM toolchain, CMake (3.16+), Make,
Git, curl, archive tools, a host C/C++ compiler, gperf and Python 3.
Vita libraries: vita2d, zlib, libpng, libjpeg, libwebp, FreeType and bzip2.
Сборка выполняется в Linux или WSL. Нужны VitaSDK с ARM toolchain, CMake (3.16+),
Make, Git, curl, средства распаковки, компилятор C/C++ для ПК, gperf и Python 3.
Библиотеки для Vita: vita2d, zlib, libpng, libjpeg, libwebp, FreeType и bzip2.
Clone with submodules, or initialize them in an existing checkout. TDLib, Jansson and rlottie are pinned to tested revisions. Build scripts apply the Vita patches; preserve local dependency changes before updating them.
Клонируйте с подмодулями или инициализируйте их в существующей копии. TDLib, Jansson и rlottie закреплены на проверенных коммитах; Vita-патчи накладываются скриптами сборки. Перед обновлением зависимостей сохраните локальные изменения.
git clone --recurse-submodules https://github.com/ing156/VitaGram.git
cd VitaGram
# For an existing checkout / Для существующей копии:
git submodule update --init
cp -n src/config.local.h.example src/config.local.hGet your own VITAGRAM_API_ID and VITAGRAM_API_HASH from API development tools
at my.telegram.org and fill them in src/config.local.h. src/config.h includes
that file; .gitignore excludes it. Keep the placeholder example in Git.
Removing credentials from current files does not remove them from Git history.
Получите свои VITAGRAM_API_ID и VITAGRAM_API_HASH в API development tools
на my.telegram.org и заполните src/config.local.h. Он подключается из
src/config.h и исключён через .gitignore; в Git остаётся шаблон с заглушками.
Удаление реквизитов из текущих файлов не удаляет их из истории Git.
Run from the project root / Выполните из корня проекта:
export VITASDK=/usr/local/vitasdk
export PATH="$VITASDK/bin:$PATH"
bash scripts/fetch-emoji-font.sh
bash scripts/fetch-fallback-fonts.sh
bash scripts/fetch-ca-bundle.sh
bash scripts/build-openssl.sh
bash scripts/prepare-tdlib.sh
bash scripts/shrink-fonts.sh
bash scripts/build-ffmpeg-vita.sh
bash scripts/build-sticker-renderer.sh| Component / Компонент | Install directory / Каталог установки |
|---|---|
| OpenSSL 3.5.9 | external/openssl-vita/install |
| FFmpeg 7.1.5 | external/ffmpeg-vita71/install |
| rlottie | external/rlottie-vita/install |
| Font tools / Инструменты шрифтов | external/font-tools-venv |
OpenSSL and FFmpeg scripts verify pinned archive hashes and apply Vita patches
without replacing SDK libraries. prepare-tdlib.sh builds host generators and
writes TL/MIME sources. rlottie enables TGS animations; without it, sticker
support is reduced. shrink-fonts.sh creates smaller packaged font copies and
keeps the originals.
Скрипты OpenSSL и FFmpeg сверяют закреплённые хэши архивов и накладывают Vita-патчи,
не заменяя библиотеки SDK. prepare-tdlib.sh собирает генераторы для ПК и создаёт
исходники TL/MIME. rlottie нужен для TGS-анимаций; без него поддержка стикеров
ограничена. shrink-fonts.sh создаёт уменьшенные копии шрифтов, сохраняя оригиналы.
Jansson is built during CMake configuration. Fonts, CA certificates, UI assets and license notices are packaged in the VPK. Rerun TDLib preparation when its submodule changes and CMake configuration after adding rlottie or reduced fonts.
Jansson собирается при конфигурации CMake. Шрифты, сертификаты, оформление и лицензии входят в VPK. При смене коммита TDLib повторите подготовку генераторов; после добавления rlottie или уменьшенных шрифтов — конфигурацию CMake.
cmake -S . -B build-modern \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-DTD_ENABLE_TESTS=OFF
cmake --build build-modern --parallel "$(nproc)"Output / Результат: build-modern/vitagram.vpk.
For ordinary client changes, only the build command is needed.
После обычных изменений клиента достаточно команды сборки.
Troubleshooting / Типичные ошибки
- Compatibility with CMake < 3.5 has been removed: configure with
-DCMAKE_POLICY_VERSION_MINIMUM=3.5/ передайте этот параметр при конфигурации. - VitaSDK libwebp is required: install Vita headers/libraries, rather than host packages / нужны заголовки и библиотеки для Vita.
- Undefined reference to BZ2_…: check Vita bzip2 / проверьте bzip2 для Vita.
- Missing generated TDLib sources: run
bash scripts/prepare-tdlib.sh/ выполните подготовку TDLib. - rlottie patch failure: inspect script output and preserve local changes; avoid resetting dependencies blindly / проверьте вывод и сохраните локальные изменения.
- UPDATE_APP_TO_LOGIN: use the prepared modern TDLib / используйте подготовленную современную TDLib.
Native regression commands and their requirements are listed in tests/README.md. Hardware tests must separately cover login, sending, media playback, cameras, microphone, UI and update installation.
Команды проверок на ПК и зависимости описаны в tests/README.md. На PS Vita отдельно проверьте вход, отправку, воспроизведение, камеры, микрофон, интерфейс и установку обновления.
Release signing and publication instructions: RELEASING.md. Инструкции подписи и публикации релиза: RELEASING.md.
Translations live in assets/lang/<code>.lang; start from en.lang. Preserve
{cross}, {circle}, other button tokens and {0}, {1} placeholders.
New keys must be added to every catalog; run bash tests/run-i18n-tests.sh.
English and Russian are reference catalogs. Portuguese (Portugal) and Traditional
Chinese translations would benefit from native review.
Переводы находятся в assets/lang/<код>.lang; за основу берите en.lang.
Сохраняйте токены кнопок и подстановки. Новые ключи добавляйте во все каталоги,
проверяйте через bash tests/run-i18n-tests.sh. Английский и русский — основные
каталоги. Португальский (Португалия) и традиционный китайский требуют проверки носителями.
The main UI is in src/main.cpp, Telegram integration in src/telegram_client.*,
media playback in src/animation_player.* and src/voice_player.*, caching in
src/ui_cache.* and src/media_cache.*, encryption in src/vault*, and localization
in src/i18n.*. UI assets live in assets/VitaGram_UI_Assets_v1; only the active
theme is loaded. -DVITAGRAM_UI_ALT_BACKGROUND=ON selects the stronger wave background.
Основной интерфейс — src/main.cpp, Telegram — src/telegram_client.*, плееры —
src/animation_player.* и src/voice_player.*, кэши — src/ui_cache.* и
src/media_cache.*, шифрование — src/vault*, локализация — src/i18n.*.
Оформление находится в assets/VitaGram_UI_Assets_v1; загружается активная тема.
Флаг -DVITAGRAM_UI_ALT_BACKGROUND=ON включает более контрастные волнообразные обои.
Encryption and media implementation / Реализация шифрования и медиа
English
- The vault derives keys with scrypt (N=2¹⁴, r=8, p=2), binds them to OpenPSID with
HKDF-SHA256, wraps a random 256-bit master key and seals files with
ChaCha20-Poly1305 in authenticated 64 KiB chunks. TDLib uses a separate database
subkey. Vault state is authenticated with HMAC-SHA256. Tests cover RFC vectors
and comparison with OpenSSL; see
tests/run-vault-tests.sh. - Screen locking retains keys for background work. Files decrypt in memory for playback; completed downloads are sealed by the background worker. Plaintext migration failures are reported rather than treated as completed encryption.
- TGS input is bounded and checked before rlottie parsing; rlottie's embedded image loader is disabled. Proxy DNS-over-HTTPS verifies the packaged CA bundle; ordinary DNS remains a fallback. The updater verifies TLS certificates as well as the package signature.
- Video notes target 240×240 at 30 FPS, H.264 + mono AAC in MP4. Encoding follows recording; one minute can require about 157 MB of temporary camera/audio data. These targets and performance need physical-device testing.
Русский
- Хранилище использует scrypt (N=2¹⁴, r=8, p=2), привязку к OpenPSID через
HKDF-SHA256, случайный мастер-ключ 256 бит и ChaCha20-Poly1305 с аутентифицированными
блоками по 64 КиБ. У базы TDLib отдельный подключ; состояние подписано HMAC-SHA256.
Проверки по RFC и OpenSSL — в
tests/run-vault-tests.sh. - Блокировка экрана сохраняет ключи для фоновой работы. Файлы расшифровываются в памяти; завершённые загрузки шифруются фоновым потоком. Ошибки преобразования показываются пользователю и не считаются завершённым шифрованием.
- TGS проверяются до разбора в rlottie; встроенный загрузчик картинок отключён. DNS-over-HTTPS для прокси проверяет сертификаты по упакованному CA bundle, обычный DNS остаётся запасным вариантом. Обновление проверяет TLS и подпись пакета.
- Видеокружки: целевые 240×240, 30 FPS, H.264 и моно AAC в MP4. Кодирование выполняется после записи; минута может требовать около 157 МБ временных кадров и звука. Частоту кадров и производительность нужно проверять на устройстве.
VitaGram's own source code is licensed under MIT. Third-party code, fonts and adapted artwork keep their original licenses. AI assistance does not change those licenses or the attribution requirements.
Собственный код VitaGram распространяется по MIT. Сторонний код, шрифты и адаптированная графика сохраняют исходные лицензии. Использование AI не меняет лицензии и требования к указанию авторства.
| Component / Компонент | License / Лицензия |
|---|---|
| TDLib and the tdlib-vita port / TDLib и порт tdlib-vita | Boost Software License 1.0 |
SQLCipher bundled Scan report · 2026-10-15
report this listing— log in to report |







0 comments
log in to comment.