Back to News
Featured

PowBot Desktop – February 2026 Update

February 28, 2026PowBot Team
updatedesktopmanagement-apicliperformance

PowBot Desktop – February 2026 Update

February has been a packed month for PowBot Desktop. Here's a rundown of the important bits that shipped.

Fixed Mode Support

Fixed mode is now fully supported across the client and scripting API. Previously, scripts and internal systems were designed primarily around resizable mode, which meant fixed mode users ran into layout issues, misaligned clicks, and broken interfaces. That's no longer the case - component positions, viewport calculations, and UI interactions all work correctly in fixed mode now. If you prefer playing in the classic 765x503 window, everything just works.

FPS Limiting

You can now cap the game's frame rate to reduce CPU and GPU usage while your scripts run. This is especially useful when running multiple instances or leaving bots running for extended sessions on lower-end hardware.

The FPS limiter is available both in the desktop UI (via the FPS buttons in the Tools toolbar) and through the Lua scripting API:

-- Throttle to 15 FPS for ~70% CPU savings
fps_limiter:set_fps(15)

-- Check current FPS
logger:info("FPS: " .. fps_limiter:fps())

-- Restore to normal when needed
fps_limiter:restore()

The in-game FPS counter will still display ~60 even when throttled, and game ticks remain stable at 50/s - the client batches ticks automatically so nothing breaks. FPS is also automatically restored when the client detaches.

Management API

PowBot Desktop now ships with a full RESTful Management API running locally at http://localhost:39344/api/v1. This opens the door to programmatic control over every aspect of the client:

  • Instance Management - Launch, stop, and monitor game instances. Execute arbitrary Lua code in running instances.
  • Account Management - Create, update, and list both Jagex (OAuth) and Legacy accounts.
  • Proxy Management - Configure and manage proxies programmatically.
  • Real-time Monitoring - Stream instance events and logs via Server-Sent Events (SSE).
  • Screenshots - Capture instance screenshots via the API or CLI.

The API comes with a full OpenAPI 3.1 specification, so you can auto-generate typed client libraries in Python, TypeScript, C#, or any language with OpenAPI tooling. No authentication is required - the API is localhost-only and runs as part of PowBot Desktop.

Example: Launch an instance

curl -X POST http://localhost:39344/api/v1/instances/launch \
  -H "Content-Type: application/json" \
  -d '{"account_id": "acc-123", "proxy_id": "proxy-456"}'

Example: Execute Lua in a running instance

curl -X POST http://localhost:39344/api/v1/instances/{id}/execute \
  -H "Content-Type: application/json" \
  -d '{"code": "print(game:logged_in())"}'

Check out the Management API guide for the full documentation.

CLI Improvements

The command-line interface has been expanded alongside the Management API. New additions include:

  • instances instance <ID> screenshot - Capture a PNG screenshot of any running instance, either saved to a file or output as base64.
  • Multiple output formats (text, JSON, YAML) across all commands for easy integration with scripts and pipelines.
# Save a screenshot
pow-desktop.exe instances instance inst-123 screenshot --output capture.png

# List instances as JSON for scripting
pow-desktop.exe instances list --output json

Function Key Support for Game Tabs

Scripts can now read and set game tab keybindings (F1–F12, Escape) through the game_settings API. This means scripts can configure hotkeys at startup to enable fast tab switching during execution - useful for prayer flicking, gear switching, and any script that needs to rapidly navigate between tabs.

-- Set up keybinds for fast tab switching
game_settings:set_tab_keybinds({
    [tabs.Tab.COMBAT]    = tabs.Keybind.F1,
    [tabs.Tab.INVENTORY] = tabs.Keybind.F4,
    [tabs.Tab.PRAYER]    = tabs.Keybind.F6,
    [tabs.Tab.MAGIC]     = tabs.Keybind.F7,
})

-- Read current binding
local key = game_settings:tab_keybind(tabs.Tab.INVENTORY)

-- Restore defaults when done
game_settings:restore_default_keybinds()

Batch binding via set_tab_keybinds keeps the settings window open for the entire operation instead of reopening it for each tab, making setup fast and clean.

Desktop MCP Server

PowBot Desktop now has its own MCP (Model Context Protocol) server at https://desktop-mcp.powbot.org/mcp. Add the URL to your favourite AI agent - Claude Code, Cursor, Windsurf, or anything that supports MCP - and get AI-assisted local script development with full access to the PowBot Desktop API docs and scaffolding tools.

Our very own Fork has already hooked this up to Claude Code and had Claude + PowBot complete Cook's Assistant autonomously.

Documentation Updates

The desktop docs have been significantly expanded this month. API reference pages across the board - Bank, Components, Keyboard, Game Settings, and more - have been cleaned up with clearer method signatures, better examples, and improved formatting.


Join our Discord if you have questions or want to share what you're building with the new APIs.

The PowBot Team

Share this article on Discord to spread the news!