
Product
Introducing Reports: An Extensible Reporting Framework for Socket Data
Explore exportable charts for vulnerabilities, dependencies, and usage with Reports, Socket’s new extensible reporting framework.
reactotron
Advanced tools
Control, monitor, and instrument your React DOM and React Native apps. From the comfort of your TTY.
npm install reactotron --save-dev
node_modules/.bin/reactotron
Might be worth creating an alias or adding it to your script section of your package.json.
To use this, you need to add a few lines of code to your app.
Depending on how much support you'd like, there's a few different places you'll want to hook in.
If you have index.ios.js or index.android.js, you can place this code somewhere near the top:
import Reactotron from 'reactotron'
// connect with defaults
Reactotron.connect()
// Connect with options
const options = {
name: 'React Web', // Display name of the client
server: 'localhost', // IP of the server to connect to
port: 3334, // Port of the server to connect to (default: 3334)
enabled: true, // Whether or not Reactotron should be enabled.
secure: false, // Are you piggybacking on HTTP or HTTPS (default: false)
}
Reactotron.connect(options)
I'd recommend using the following for connect in React Native so that release builds will disable reactotron.
Reactotron.connect({enabled: __DEV__})
connect() Happens FirstIt is important that your Reactotron.connect() happens before your redux store gets created. Especially
if you're using the {enabled: false} option.
To make this happen, you can create a ReactotronConfig.js file and import that as your first import in
the entry point of your application. Check out the 3 projects under examples to see that in action.
// wherever you create your Redux store, add the Reactotron middleware:
import Reactotron from 'reactotron'
const store = createStore(
rootReducer,
applyMiddleware(
logger,
Reactotron.reduxMiddleware // <--- here i am!
)
)
// Or you can use the Reactotron storeEnhancer!
const enhancer = compose(
// If you have other enhancers..
Reactotron.storeEnhancer()
)
const store = createStore(
rootReducer,
initialState,
enhancer
)
// wherever you create your Redux store
import Reactotron from 'reactotron'
const store = createStore(...) // however you create your store
Reactotron.addReduxStore(store) // <--- here i am!
// If you're using the Reactotron.storeEnhance(), it's already
// setup for you!
// wherever you create your API
import Reactotron from 'reactotron'
// with your existing api object, add a monitor
api.addMonitor(Reactotron.apiLog)
Call Reactotron.log() and pass a string or object to have it log. Emojis are supported.
You can use Reactotron for unscientific benchmarks.
const bench = Reactotron.bench('Here I Go')
bench.stop()
You can also register steps if you're timing a sequence.
const bench = Reactotron.bench('Lets Go')
bench.step('After long operation')
bench.step('After one more thing')
bench.stop()
When you initialize the reactotron you can tell it the server location when you connect:
Reactotron.connect({server: '10.0.1.109'})
You can clear your reactotron by hitting backspace/delete OR you can insert a separator by pressing the "-" key.
For some commands, like dispatching an action, you can repeat previous by pressing the "." key.
PRs and bug reports are welcome!
You want to start extending this?
cd src
npm install
npm start
cd examples/ReactNativeExample
npm install
cp ../../src/client/client.js .
react-native run-ios
Then hack around. Hack around. Hack up hack up and hack down.
Be sure to read the silly examples/README.md file for more details.
A shout out to my teammates at Infinite Red who encourage this type of open-source hacking & sharing.
Also, to Kevin VanGelder, who spawned the idea for this library by saying, "Hey, you know what would be cool? A REPL. We should do that."
See the full CHANGES.md file.
FAQs
A console-based remote control for React and React Native.
The npm package reactotron receives a total of 195 weekly downloads. As such, reactotron popularity was classified as not popular.
We found that reactotron demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Explore exportable charts for vulnerabilities, dependencies, and usage with Reports, Socket’s new extensible reporting framework.

Product
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.