Introducing PubNub PUNK, our brand new debug console
The PubNub Debug Console Has Been Completely Rebuilt: Introducing PUNK
If you've ever used the PubNub debug console, you know its great at those quick, high-level things you need to check. Over the past few years PubNub has expanded and added so many features that the old debug console felt a little limiting. For example: a single hardcoded SDK version, no way to test file sharing, presence debugging that only showed HereNow, history fetching with no pagination or time range controls, and an Access Manager interface that couldn't inspect tokens or use patterns.
Those days are over.
We're thrilled to introduce the PubNub Ultimate Ninja Kit, a complete reimagining of what the debug console can be. This isn't an incremental update. It's a ground-up rebuild designed to give you the debugging power you need.
Experience it now at pubnub.com/docs/console
What You Had vs. What You Get Now
Let's be direct about what's changed. Here's a side-by-side look at the old console versus the new one:
| Capability | Old Console | New Console |
|---|---|---|
| SDK Version | Hardcoded single version | Live selector with all available SDK versions |
| Event Engine | No support | Full support with toggle switch |
| File Sharing | Not available | Complete file management with drag-drop, bulk ops, ZIP export |
| Presence | Here Now only | Here Now, Where Now, simulated users, state editor |
| History | Basic fetch, no controls | Cursor pagination, time ranges, message deletion, export |
| Access Manager | Basic grant/revoke | Token generation, inspection, patterns, full permission matrix |
| Channel Groups | Basic subscribe only | Full CRUD, batch operations, channel management |
| App Context | Not available | Users, Channels, Memberships, Members management |
| Message Options | Message + metadata only | TTL, custom message types, store-in-history toggle, signals |
| UI | jQuery-based, three panels | Modern React, dedicated tools, persistent state |
| Configuration | Re-enter across sessions | Persists everything automatically |
SDK Version Control
Now you can switch SDK versions with a dropdown.
The new console fetches the complete list of available JavaScript SDK versions directly from PubNub's CDN. Select any version, whether you're testing against the latest release or reproducing an issue on an older version. The console reloads the SDK and reconnects all instances automatically. You'll even see a warning badge in the sidebar when a newer version is available.
This alone eliminates setup time when debugging version-specific issues.
Event Engine Support
PubNub's Event Engine represents a fundamental improvement in how real-time connections are managed. But until now, testing Event Engine behavior meant modifying your application code.
Now it's a toggle switch.
Enable or disable Event Engine from the Settings page and watch all your connections restart with the new transport mode. Test how your subscriptions behave under both architectures. Verify that your application handles both modes gracefully. The current mode is always visible in the sidebar, so you're never wondering which transport you're using.
Pub/Sub: From Basic to Powerful
The old console let you publish a message and watch it arrive. That was about it.
What's New in Pub/Sub
Quick Publish Panel with Full Control
Store in History Toggle: Control whether test messages pollute your history storage. Quick tests? Don't store them. Testing persistence? Flip it on.
TTL (Time-to-Live): Set message expiration directly. No more cluttered history from debug sessions.
Custom Message Types: Tag messages with semantic types like "text-message", "notification", or "system-event" for filtering and categorization testing.
Metadata Editor: Attach JSON metadata that travels alongside your message—essential for testing filter expressions and message enrichment.
Signal Support: Send lightweight signals for testing typing indicators, read receipts, and other ephemeral events.
Live Messages Panel That Helps
Smart Auto-Scroll: Messages stream in with automatic scrolling that pauses when you scroll up to inspect something. A "jump to bottom" button appears when you're behind.
Raw vs. Formatted Toggle: See pretty-printed JSON or the complete raw message object with all system fields: timetoken, publisher UUID, subscription match, everything.
Presence Event Integration: Watch join/leave/timeout events in a dedicated side panel alongside your messages.
Copy Operations: One-click copy for individual messages, all messages as formatted JSON, or raw arrays for pasting into your own code.
Timetoken Display: Every publish shows the returned timetoken with copy functionality.
Subscription Configuration That Scales
Multi-Channel: Subscribe to as many channels as you need, not just one at a time.
Channel Groups: Finally subscribe to channel groups directly from the debug console.
Cursor-Based History Catch-Up: Specify a timetoken to begin your subscription from a specific point, essential for testing reconnection scenarios.
Heartbeat Configuration: Set presence heartbeat intervals per-subscription for testing timeout behavior.
Server-Side Filter Builder
Build filter expressions with a guided UI that shows available fields and operators.
See the generated expression in real-time.
Apply filters instantly and watch which messages pass through.
Test meta-based filtering without modifying your application.
Persistence: Take Control of Your History
The old console's history feature? Click a button, get some messages. No control over what, when, or how many.
What's New in Persistence
Precise Fetch Controls
Timetoken Ranges: Fetch messages from specific time windows using start and end timetokens.
Human-Readable Timestamps: Convert timetokens to readable dates in your local timezone. Includes a timezone selector for distributed teams.
Count Control: Specify exactly how many messages to retrieve (1-100 per request).
Reverse Order: Fetch in chronological or reverse-chronological order based on your debugging needs.
Cursor-Based Pagination: Page through extensive history without missing messages or creating duplicates.
Result Customization
Include Timetoken: Attach precise timestamps to every message.
Include Metadata: Retrieve the metadata you attached during publish.
Include Message Actions: Fetch reactions, receipts, and other actions associated with messages.
Include UUID: See who published each message.
Message Inspection
Expandable message cards show full details with syntax-highlighted JSON.
See all PubNub-added system fields.
Copy individual messages or their payloads.
Message Deletion
Delete specific messages by selecting them.
Delete ranges by timetoken—clean up test data without touching production.
Confirmation dialogs prevent accidents.
Message Counts
Query how many messages exist in each channel within a time range.
Plan your fetches before making them.
Presence: From "Who's Here" to Complete Visibility
What's New in Presence
Here Now: Enhanced
Instant occupancy counts.
Complete UUID listing with state data for each user.
Expand any UUID to see their full presence state object.
Snapshot history to compare occupancy over time.
Raw response view for debugging.
Where Now: Available
Enter any UUID and discover all channels they're connected to.
See their state for each channel.
Click any channel to jump to monitoring it.
Live Presence Monitoring
Watch join, leave, timeout, and state-change events in real-time.
Visual connection status with automatic reconnection controls.
Event details include UUID, type, timestamp, channel, and state data.
Simulated Users
This is the feature that eliminates the most tedious part of presence testing:
Spin up virtual users: Create up to 16 simulated PubNub connections with custom UUIDs.
Dual Transport Modes: Create some users with Event Engine and others with legacy transport to test mixed environments.
Per-User Subscriptions: Connect each simulated user to specific channels and watch them appear in Here Now.
State Editor: Set and update presence state for each simulated user with JSON validation.
Independent Lifecycles: Connect and disconnect users individually.
Bulk Actions: Manage multiple simulated users at once.
No more writing scripts to test presence. No more manually managing multiple browser tabs. Create your test scenarios directly in the console.
File Sharing:
The old console had no file sharing capabilities. Testing file uploads meant writing code or using REST clients.
What's Now Available
Upload
Drag-and-Drop: Drop files directly onto the interface.
Multi-File: Upload multiple files sequentially with progress tracking.
Any Channel: Upload to any channel you have access to.
Real-Time Events
Watch file upload notifications as they happen across channels.
See file name, size, channel, uploader, and timestamp.
File Management
Channel Browser: Navigate between channels and explore file contents.
Sortable Lists: Sort by name, size, date, or uploader.
Search and Filter: Find files by name or filter by type.
Grid and List Views: Visual grid with thumbnails or compact list.
Preview and Download
Image preview with lightbox display.
Full file details including MIME type and CDN URL.
One-click download or URL copy.
Bulk Operations
Select multiple files for batch download or deletion.
ZIP export entire channel file collections.
Delete confirmation with detailed report.
Channel Groups: Full Management, Not Just Subscribe
The old console let you subscribe to a channel group and not much else
What's Now Available
Group Lifecycle
Create new groups with validation.
List all groups on your keyset.
Delete groups with confirmation.
Expand any group to see its channels.
Channel Operations
View all channels in a group with pagination.
Add individual channels or paste comma-separated lists.
Remove channels individually or in bulk.
Copy the complete channel list.
Batch Operations
Add dozens of channels in one operation.
Remove multiple channels at once.
Clear feedback on every operation.
Access Manager
The old console's PAM interface offered grant/revoke with basic read/write/manage checkboxes.
What's Now Available
Token Generation with Full Permission Matrix
Specific Resources:
Channels: Read, Write, Get, Update, Manage, Delete, Join
Channel Groups: Read, Manage
UUIDs: Get, Update, Delete
Pattern-Based Permissions:
Grant permissions to channels matching patterns (e.g.,
chat.*)Apply patterns to channel groups and UUIDs
Build once, cover many resources
Token Configuration:
Set TTL from minutes to days.
Specify the authorized UUID.
Attach custom metadata for tracking.
Token Inspection
Paste any PAM token to decode it.
See exactly which resources it grants access to.
View permission breakdown by resource.
Check expiration in both timetoken and human-readable format.
Inspect attached metadata.
Token Revocation
Immediate revocation with confirmation.
Clear success/failure feedback.
Token Testing
Apply a token as active and test operations.
Clear error messages when permissions are missing.
App Context
The old console had no App Context support. Managing user metadata, channel metadata, or memberships required API calls or custom code.
What's Now Available
Users
Browse all users with pagination.
Search by ID or custom fields.
Create users with name, email, profile URL, and custom data.
Edit existing user metadata inline.
Delete users with confirmation.
View each user's channel memberships.
Channels
Browse all channel metadata.
Search by ID or name.
Create channel metadata with name, description, and custom fields.
Edit existing channel metadata.
Delete entries.
View channel members.
Memberships and Members
Explore user-to-channel relationships.
View and edit membership metadata.
Add and remove memberships.
See all members of any channel.
Search
Search across users and channels simultaneously.
Results grouped by type.
Jump directly to editing any result.
Configuration That Persists
One of the most frustrating aspects of the old console was re-entering settings constantly. Channel name here, keys there, filter expression somewhere else and losing it all on refresh.
The new console remembers everything.
Channel lists persist across sessions.
Filter expressions are saved per-tool.
UI preferences (raw vs. formatted, grid vs. list) are remembered.
SDK version selection is maintained.
Event Engine preference persists.
Open the console a week later and pick up exactly where you left off.
Get Started Now
Ready to explore all of the PubNub platform from a single debugging experience?
Launch PUNK at pubnub.com/docs/console
Navigate to the console
Enter your PubNub publish and subscribe keys on the Settings page
Explore any tool your configuration is shared automatically
No installation. No dependencies. Just a better debugging experience.