Frida Workbench for VSCode
Repository |
Issues |
Install
This is a community contributed project, not affiliated with the official Frida team. It is developed and maintained by @CodeColorist as an open-source extension for Visual Studio Code to enhance the Frida scripting experience.
中文说明
Prerequisites
Optional dependencies
- libimobiledevice (for
inetcat command to start a SSH shell)
- iTunes on Windows (for iOS USB connection)
If you are on Windows, you need to keep iTunes open in order to interact with iOS devices via USB.
Because of PEP0668, you might encounter an error when running pip3 install frida-tools globally.
The recommended way is to open a folder (workspace) in VSCode, then create and activate a virtual environment using the Python extension. In this case, the extension will use your current active Python venv to load frida commands.
Alternatively, you can use a package manager like pipx or UV to install it to $PATH, while keeping it isolated.
Features

Apps and Processes List
List apps and processes on connected devices in a sidebar panel. Right-click to attach, spawn, spawn in suspended mode, kill processes, or copy device/process info to clipboard. Supports local, USB, and remote devices.
Interactive Runtime Panels
Modules & Exports Browser
Browse loaded native modules and their exported functions for any attached process. Filter modules by name, inspect base address, size, and path, then select exports for hook generation.
Classes & Methods Browser
Explore runtime classes and methods for both Java and Objective-C. Filter classes, toggle between own and inherited methods, and batch-select methods for hook generation. Also includes Objective-C protocol inspection to browse and analyze protocols.
Dump class headers for reverse engineering:
- Objective-C — generate header files from runtime class metadata
- Java — generate decompiled class stubs with package and import statements
Hook Generation
Generate Frida hook code from the Modules and Classes panels:
- Native hooks —
Interceptor.attach() with onEnter / onLeave callbacks for exported functions
- Objective-C hooks — class and selector based hooks with proper ObjC bridge usage
- Java hooks —
Java.perform() / Java.use() hooks with method overload support
- AI-powered hooks — use GitHub Copilot to infer native function signatures (parameter types, return types) and generate type-aware argument logging
Smart Autocomplete (LSP)
Context-aware completions for Frida scripts in JavaScript / TypeScript:
ObjC.classes.<ClassName> — completes Objective-C class names
ObjC.classes.Foo['<method>'] — completes method selectors
ObjC.classes.Foo.method — completes class method selectors
Java.use('<ClassName>') — completes Java class names
Process.getModuleByName('<name>') — completes loaded module names
The language server depends on a target process context. You need to create a configuration file .vscode/frida.json in your workspace. The easiest way is to right-click a process or app in the sidebar and select Set LSP Target, which generates the file automatically.
.vscode/frida.json Configuration
The file specifies which device and target the LSP should attach to. It requires a device field and exactly one of app, pid, or process.
Attach by app identifier (recommended — spawns or attaches to the app):
{
"device": "local",
"app": "com.example.myapp"
}
Attach by process name:
{
"device": "local",
"process": "myprocess"
}
Attach by PID (useful when multiple processes share the same name):
{
"device": "local",
"pid": 1234
}
The device value corresponds to the Frida device ID — local for the host machine, usb for a USB-connected device, or a host:port string for remote devices.
The LSP watches this file for changes. Editing or recreating it automatically restarts the language server with the new target.
Syslog
Stream real-time application logs from attached processes.
Project Scaffolding
- New Agent — create a new Frida Agent project with TypeScript support
- New C Module — create a new Frida C Module project
- Download Typings — download Frida TypeScript type definitions for autocomplete
Debug Configuration
Generate VSCode launch.json and tasks.json for debugging Frida scripts with breakpoints.
- Download and start frida-server on Android device (automatic architecture detection)
- Pull APK from device (right-click on Android app to pull)
Shell
For Android devices, Open Shell is a wrapper for adb shell.
For iOS it gives an SSH shell on jailbroken devices. May need to configure credentials.
Remote Device Support
Connect to remote Frida devices via host:port directly from the sidebar.
Contributors
