Sign inDemoInstall


Package Overview
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies



Manage session history with JavaScript

Version published
Weekly downloads
decreased by-3.5%
Install size
314 kB
Weekly downloads

Package description

What is history?

The history package is a JavaScript library that lets you manage session history anywhere JavaScript runs. It provides a minimal API that lets you manage the history stack, navigate, and persist state between sessions. It is commonly used in conjunction with libraries like React Router but can be used standalone as well.

What are history's main functionalities?

Manage session history

This feature allows you to create a history object and manipulate the browser's session history by pushing new entries onto the history stack.

const { createBrowserHistory } = require('history');
const history = createBrowserHistory();
history.push('/home', { some: 'state' });

Navigate programmatically

This feature enables you to navigate through the history stack programmatically, either going back or forward.

history.go(-1); // Go back one entry in the history stack
history.goForward(); // Go forward one entry in the history stack

Listen for changes to the current location

This feature allows you to listen for changes in the current location, which is useful for reacting to navigation events.

const unlisten = history.listen((location, action) => {
  console.log(action, location.pathname, location.state);
// To stop listening

Persist state between sessions

This feature allows you to push state onto the history stack and access it later, which is useful for persisting information across sessions without using local storage or cookies.

history.push('/location', { user: '12345' });
// The state can be accessed later
const location = history.location;
const state = location.state; // { user: '12345' }

Other packages similar to history



history · npm package

The history library lets you easily manage session history anywhere JavaScript runs. A history object abstracts away the differences in various environments and provides a minimal API that lets you manage the history stack, navigate, and persist state between sessions.


Documentation for version 5 can be found in the docs directory. This is the current stable release. Version 5 is used in React Router version 6.

Documentation for version 4 can be found on the v4 branch. Version 4 is used in React Router versions 4 and 5.


To see the changes that were made in a given release, please lookup the tag on the releases page.

For changes released in version 4.6.3 and earlier, please see the file.


Development of the current stable release, version 5, happens on the main branch. Please keep in mind that this branch may include some work that has not yet been published as part of an official release. However, since main is always stable, you should feel free to build your own working release straight from main at any time.

If you're interested in helping out, please read our contributing guidelines.


history is developed and maintained by Remix. If you're interested in learning more about what React can do for your company, please get in touch!


A big thank-you to BrowserStack for providing the infrastructure that allows us to run our build in real browsers.

Also, thanks to Dan Shaw for letting us use the history npm package name. Thanks, Dan!



Last updated on 22 Feb 2022

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.


Related posts

SocketSocket SOC 2 Logo


  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc