About PocketZot
PocketZot is an unofficial DCSS WebTiles client designed for mobile phones in portrait mode.
Swipe to browse screenshots →
Features
- Custom, ASCII-first design to maximize compactness and readability. The default DCSS map viewport is roughly square in ASCII. PocketZot fits the full standard console map dimensions onto a standard iPhone in portrait mode, with a font still large enough to read. Tiles are supported as well.
- Login with multiple WebTiles server accounts and switch between them
- Inline tap targets in many menus and descriptions
- Context-aware control sets for common situations
- Spectator mode with expanded map view
- Floating monster list — tap for full view, tap a monster to inspect, or collapse to a single line
- Map double-tap toggles zoom
- Map two-finger long press toggles tiles
- Minimap — tap the place name in the HUD (e.g. @D:1) to toggle; controls stay live while it's up
- Double-tap on-screen Shift to lock it
- Installs as a PWA — add to home screen for the best experience
Controls
The controls are organized into three tabs: @, >, and ?. The mental model is:
- @ "micro" — moment-to-moment actions, including during battle
- > "macro" — actions often taken outside of battle, or after clearing a floor
- ? "info" — commands to get information about your character or game
Obligatory virtual keyboard also available. The ⚙ in the HUD opens settings and the controls guide; the login screen's Settings link opens the same surface.
Version support
Current stable and trunk DCSS are supported. Versions back to 0.24 generally work; older versions and forks may or may not. In particular, starting a new character on versions before 0.24 doesn't work.
Security
PocketZot is a static web app with no backend of its own. Your browser
connects directly to your chosen DCSS server over an encrypted WebSocket
(wss://). Your account is a WebTiles account between you
and that server — PocketZot has no accounts of its own. Credentials are
sent only in the login message and never stored.
"Resume as …" — what is stored
If the server issues a session cookie, it's stored in
localStorage under a per-{server, username} key so you can
reconnect without re-entering your credentials, until the token expires
or is revoked. Logging out invalidates the token on both ends: the
server is told to forget it, and the local entry is removed.
How it was built
Most of the implementation was written with Claude Code, under my direction and review. All design and product decisions, testing, and QA were mine.
The source is available at github.com/pocketzot/pocketzot, licensed under AGPL-3.0-or-later; see ATTRIBUTION.md for its relationship to DCSS.
Feedback
Please send any comments, questions, or bug reports to [email protected]. If you're enjoying the app, I'd love to hear from you.
Support
If you like the app and want to support its development, donations are sincerely appreciated. Please see the Support page.