Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Releases: Starkka15/PocketTavern

PocketTavern v2.2.5

27 May 18:06
@Starkka15 Starkka15

Choose a tag to compare

What's New in v2.2.5

Bug Fixes

  • Fixed: Deleting a character now deletes their chat history — Previously, removing a character only deleted the character card PNG and its database entry. All associated chat .jsonl files and Room chat records were left behind, accumulating as orphaned data. This is now fully cleaned up on deletion.
  • Fixed: Card extension auto-enable/disable — Extensions on character cards now correctly enable and disable when switching between characters.
  • Fixed: Narrator message handling — Narrator/system messages in chat are handled more consistently.
  • Fixed: Card extension actions bleeding across character switches — Extension-driven actions from one card no longer leak into sessions for other characters.

New Features

  • Character Storage Browser (Settings → Utilities → Character Storage) — Browse all character PNG files stored on device. Shows each character's file size, flags entries that are on disk but not indexed (or in the DB but missing from disk), and lets you delete individual characters with a confirmation prompt. A Rescan button rebuilds the character index from disk, fixing any sync drift between the database and actual files.
  • Group Chat improvements — Message actions (edit, delete), edit group name and members after creation, image generation support within group chats, world info/lorebook injection in group chat context.

Internal

  • GroupChatMessage now carries an imagePath field for generated images in group chats.
  • Character deletion now correctly cascades: PNG removed → character DB entry removed → all chat files removed → all chat DB entries removed.

A Note on Future Development

I've done what I can to get PocketTavern to a solid, stable state. From here, future releases will be driven by bug reports filed as GitHub Issues / feature requests and pull requests from contributors.

If you run into something broken, open an Issue — I'll review it. If you want to add a feature or fix something yourself, PRs are very welcome. All pull requests will be tested before merging.

Performance optimizations and new features are especially welcome. This app started as a personal project, I've built what I needed for my own use cases, but there's a lot of room to grow — if you have the skills and the interest, jump in or submit a request. I'll see what I can do.

Thank you to everyone who's using it, reporting bugs, and giving feedback. I hope to continue perfecting it in time.

Assets 3
Loading

v2.2.4

26 May 23:30
@Starkka15 Starkka15

Choose a tag to compare

What's New

Card Extensions

Character cards can now embed JavaScript directly in the PNG file. The script loads automatically when the character is selected — no separate installation needed. Anyone who receives the card gets the full interactive experience.

Cards with embedded scripts appear in Settings → Extensions → Card Extensions with an enable/disable toggle.

PT.vars — Per-Chat Variable Store

A persistent key/value store scoped to each individual chat. Variables survive app restarts and are isolated per character per chat file. Accessible from card scripts and JS extensions via PT.vars.get/set/delete/increment/decrement. Optionally auto-injects all stored variables into the system prompt as a [Current World State] block.

Streaming Scroll Fix

Auto-follow during streaming now tracks user intent instead of raw scroll position. Scrolling up pauses auto-follow; scrolling back to the bottom resumes it. Previously the view would force-jump to the bottom on every streaming token regardless of reading position.

Swipe Fix

Horizontal message swipe now resolves on pointer release only, and requires a clearly horizontal drag. Vertical scrolling no longer accidentally triggers swipe, and counteracting streaming drift can no longer flip the visible message.

Export Chat

New Export Chat option in the chat overflow menu. Opens a file picker and saves the current chat as a .jsonl file to any location on your device.

Duplicate Character Names

Importing two cards with the same character name now produces Alice.png and Alice_2.png instead of overwriting the existing card.

Cleanup on Delete

Deleting a character now removes all associated per-chat variable files (.vars.json sidecars) in addition to the card itself.

Delete Character Confirmation

The delete character dialog now warns that the action cannot be undone before proceeding.


Bug Fixes

  • Card script init() and PT.registerMessageActions() now fire correctly on character load
  • CHAT_STARTED event dispatches when a new chat is created
  • CHARACTER_LOADED event dispatches after the card script finishes evaluating

Documentation

  • README updated with full PT.vars API reference
  • PT.cardExtensionId, CHAT_STARTED, and CHARACTER_LOADED documented
  • New Built-in Character Card Extensions section with JSON structure and example script
Loading

v2.2.3 — World Book, Lore Tracking, Group Chat Fix

26 May 01:23
@Starkka15 Starkka15

Choose a tag to compare

What's New

Shared World Book (beta)

Groups now have a persistent lore log that follows characters everywhere. It's injected into every generation — both group chat turns and solo chats with any member of the group.

  • Edit it directly: overflow menu → World Book in any group chat
  • Grow it mid-scene: use /addlore <text> in solo or group chat to append a timestamped entry
  • Let the AI fill it: use /scanlore [N] to extract notable events from the last N messages — results appear in a review dialog where you can check, edit, or uncheck each entry before adding

Lore Tracking (character editor)

A new PocketTavern-only field in the character editor. Write what /scanlore should watch for — relationship milestones, stat changes, named events. Stored in the card's extensions map, invisible to SillyTavern and other tools.

New Slash Commands

Command Where What it does
/addlore <text> Solo + Group Append a timestamped entry to the linked group's World Book
/scanlore [N] Solo + Group AI-assisted lore extraction from the last N messages (default 30)
/sysauto [hint] Group Generate a narrator scene description mid-conversation. With a hint it writes that scene; without one it invents something.

Group Chat: OAI fix

Chat completion models (DeepSeek, GPT, Claude, etc.) were receiving the entire system prompt as a single user message, causing them to echo the instructions back instead of staying in character. Group chat now sends proper system + user message pairs, matching how solo chat works.

Group chat also now respects your active OAI preset — temperature, max tokens, top_p, penalties — all previously ignored.

Group Chat: full character card content

Card content truncation in group chat prompts was very aggressive (description capped at 600 chars, personality at 300). Limits raised to match the actual card sizes: 3000 / 1200 / 800 chars for description / personality / scenario.

Bug Fixes

  • SPRITE_REGEX: capture groups 4–6 were silently ignored; expression sprite name lookup now falls through all six groups
  • Macro substitution in user messages: all {{macros}} now resolve in outgoing messages, not just {{char}} and {{user}}

Notes

  • DB migration: this release adds a loreHints column to the characters table. The migration runs automatically on first launch.
  • World Book is beta: the feature works but hasn't been stress-tested with large lore logs or many simultaneous members. Feedback welcome.

Installation

Download PocketTavern-release.apk below, enable Install from unknown sources, and install.

Loading

v2.2.2 — Custom Theme Builder, BotBooru, Inline Images

24 May 10:18
@Starkka15 Starkka15

Choose a tag to compare

What's New

Custom Theme Builder

  • New Create Theme screen under Theme Settings with HSV color wheel pickers for every color
  • Live split preview: main menu card, avatar shape chips, and chat example update in real time
  • Background image support for the main menu (fill / fit / stretch, adjustable opacity)
  • Avatar shape selector: Circle, Rounded Square, Square
  • Saves themes as SillyTavern-compatible JSON

BotBooru

  • BotBooru added as a third option in the Search Cards dropdown (alongside CharaVault and RisuRealm)
  • Full embedded browser — browse, log in, and tap Download PNG to import directly
  • Fixed blob URL downloads: hooks into the page's JS before revokeObjectURL fires so the card is captured correctly

Inline Images in Chat

  • Markdown images ![alt](url) now render as actual images inside chat bubbles
  • HTML <img src="..."> tags (including common malformed variants) also rendered inline
  • Streaming preview strips image syntax cleanly

"Don't Speak for User" — Stronger Enforcement

  • Constraint now injected at both system-prompt and post-history levels
  • Stronger wording with explicit prohibition

Image Generation

  • Model switching implemented for SD WebUI / Forge backend
Loading

v2.2.1 - Persona fixes and Don't speak for me switch

24 May 08:44
@Starkka15 Starkka15

Choose a tag to compare

What's new

  • Persona avatar optional — no longer required to create a persona; avatars are saved locally and displayed from device storage
  • Don't speak or act for user toggle in Context Settings — instructs the AI to never write dialogue or actions on behalf of your character; injects into the system prompt automatically
  • Persona description hints — placeholder text in persona create/edit dialogs so you know what to write
Loading

v2.2.0 — .charx Import, Sprites, Long-Term Memory & Macros

22 May 00:45
@Starkka15 Starkka15

Choose a tag to compare

What's New in v2.2.0

.charx Card Import (RisuAI Format)

  • Import .charx character cards directly — no conversion needed
  • Character expression sprites embedded in the card are automatically extracted and stored
  • Browse and download cards from RisuRealm (realm.risuai.net) in-app — downloads intercept automatically

Auto-Translation

  • After importing a non-English card, a dialog lets you choose which fields to translate using your active LLM
  • Translation preserves {{user}}, {{char}}, sprite tags, and markdown markers verbatim
  • Failed translations leave the original card untouched

Expression Sprites

  • Characters using RisuAI sprite tags (<img src=(name)>) display expression images in a portrait panel above the chat input
  • Panel animates on sprite change, tap to dismiss
  • Sprite lookup is case-insensitive

Long-Term Memory

  • When unsummarized chat history exceeds ~3,000 tokens, the oldest turns are automatically summarized by your LLM into a bullet-point memory block
  • Memory block is injected at the top of every subsequent prompt — the AI remembers facts across sessions
  • Runs in the background after each AI response, never blocks the chat
  • Toggle on/off in Settings → Context Settings

ST-Compatible Macro System

  • Full macro substitution in all prompt fields and user messages
  • New macros: {{isotime}}, {{isodate}}, {{time_UTC±N}}, {{idle_duration}}, {{roll:NdN}}, {{lastMessage}}, {{lastUserMessage}}, {{lastCharMessage}}, {{charDescription}}, {{charPrompt}}, and more
  • {{char}} and {{user}} now also substitute in the displayed chat bubble (not just the LLM prompt)

Bug Fixes

  • Summarization prompt: ensure user turn precedes first assistant message to satisfy strict API ordering requirements

Full changelog: README

Loading

v2.1.5.2 — Security Hardening

20 May 21:19
@Starkka15 Starkka15

Choose a tag to compare

Security Hardening

  • API keys, auth tokens, and TTS keys now stored encrypted via Android Keystore (EncryptedSharedPreferences)
  • Connection profiles JSON encrypted at rest via EncryptedFile; existing plaintext files migrated automatically
  • Zip Slip vulnerability fixed in backup import
  • SSRF blocked in extension proxy (scheme + loopback validation)
  • JavaScript injection via extension ID fixed
  • Network security config added — TLS enforced for all public endpoints (charavault.net, openai.com, etc.)
  • HTTP logging disabled in release builds
  • Debug file logging disabled in release builds
  • Backup extraction disabled (allowBackup=false)
Loading

v2.1.5.1

17 May 23:33
@Starkka15 Starkka15

Choose a tag to compare

Fix

  • First message no longer shows raw {{user}} — persona name is substituted when a new chat is created
Loading

v2.1.5

17 May 23:11
@Starkka15 Starkka15

Choose a tag to compare

What's New

  • nano-gpt image generation — new backend in Image Generation settings; pick any model, list loads automatically from the nano-gpt API
Loading

PocketTavern v2.1.4

17 May 16:05
@Starkka15 Starkka15

Choose a tag to compare

What's New

Group Chats (major overhaul)

  • Multi-session chat history — create/switch/delete chat sessions per group
  • Chat style toggle: Dialogue (speech only) vs RP (speech + actions)
  • Per-group editable system prompt
  • Narrator on first message — sets the scene, establishes character presence
  • Characters now respond in first person and never speak for the user
  • Stop sequences prevent characters from writing other speakers' dialogue
  • Name detection: if you address a character by name, they respond first
  • Streaming scroll follows the bottom of the chat as text generates

UI

  • Main screen: "Card Search" renamed to "Browse CharaVault"
  • CharaVault screen now shows "Browse CharaVault" caption in header

Bug Fixes

  • Fixed HTTP 404 errors when custom API URL already includes /v1 suffix
  • Improved API error messages (parses JSON error body instead of showing raw JSON)
Loading
Previous 1
Previous

AltStyle によって変換されたページ (->オリジナル) /