Web history on steroids
Hister is a web history management tool that provides blazing fast, content-based search for visited websites. Unlike traditional browser history that only searches URLs and titles, Hister indexes the full content of web pages you visit, enabling deep and meaningful search across your browsing history.
- Privacy-focused: Keep your browsing history indexed locally - don't use remote search engines if it isn't necessary
- Full-text indexing: Search through the actual content of web pages you've visited
- Advanced search capabilities: Utilize a powerful query language for precise results
- Efficient retrieval: Use keyword aliases to quickly find content
- Flexible content management: Configure blacklist and priority rules for better control
- Index: download and index any URL
- Import: import and index existing Firefox/Chrome browser history
Available for Chrome and Firefox
Grab a pre-built binary from the latest release. (Don't forget to chmod +x)
Execute ./hister to see all available commands.
- Clone the repository
- Build with
go build - Run
./hister helpto list the available commands - Execute
./hister listento start the web application
Settings can be configured in ~/.config/hister/config.yml config file - don't forget to restart webapp after updating.
Execute ./hister create-config config.yml to generate a configuration file with the default configuration values.
Run directly from the repository:
nix run github:asciimoo/histerAdd to your current shell session:
nix shell github:asciimoo/histerInstall permanently to your user profile:
nix profile install github:asciimoo/histerAdd the following to your flake.nix:
{
inputs.hister.url = "github:asciimoo/hister";
outputs = { self, nixpkgs, hister, ... }: {
nixosConfigurations.yourHostname = nixpkgs.lib.nixosSystem {
modules = [
./configuration.nix
hister.nixosModules.default
];
};
};
}Then enable the service:
services.hister = {
enable = true;
port = 4433;
dataDir = "/var/lib/hister";
configPath = /path/to/config.yml; # optional, use existing YAML file
config = { # optional, or use Nix attrset (automatically converted to YAML)
app = {
directory = "~/.config/hister/";
search_url = "https://google.com/search?q={query}";
};
server = {
address = "127.0.0.1:4433";
};
};
};Note: Only one of configPath or config can be set at a time.
If you don't want to use the system module, you can add the package directly to environment.systemPackages in your configuration.nix:
NixOS & Darwin (macOS):
{ inputs, ... }: {
environment.systemPackages = [ inputs.hister.packages.${pkgs.system}.default ];
}If you don't want to use the Home-Manager module, you can add the package directly to home.packages in your home.nix:
{ inputs, ... }: {
home.packages = [ inputs.hister.packages.${pkgs.system}.default ];
}Add the following to your flake.nix:
{
inputs.hister.url = "github:asciimoo/hister";
outputs = { self, nixpkgs, home-manager, hister, ... }: {
homeConfigurations."yourUsername" = home-manager.lib.homeManagerConfiguration {
modules = [
./home.nix
hister.homeModules.default
];
};
};
}Then enable the service:
services.hister = {
enable = true;
port = 4433;
dataDir = "/home/yourUsername/.local/share/hister";
configPath = /path/to/config.yml; # optional, use existing YAML file
config = { # optional, or use Nix attrset (automatically converted to YAML)
app = {
directory = "~/.config/hister/";
search_url = "https://google.com/search?q={query}";
};
server = {
address = "127.0.0.1:4433";
};
};
};Note: Only one of configPath or config can be set at a time.
Add the following to your flake.nix:
{
inputs.hister.url = "github:asciimoo/hister";
outputs = { self, darwin, hister, ... }: {
darwinConfigurations."yourHostname" = darwin.lib.darwinSystem {
modules = [
./configuration.nix
hister.darwinModules.default
];
};
};
}Then enable the service:
services.hister = {
enable = true;
port = 4433;
dataDir = "/Users/yourUsername/Library/Application Support/hister";
configPath = /path/to/config.yml; # optional
config = { # optional, or use Nix attrset (automatically converted to YAML)
app = {
directory = "~/.config/hister/";
search_url = "https://google.com/search?q={query}";
};
server = {
address = "127.0.0.1:4433";
};
};
};Bugs or suggestions? Visit the issue tracker.
AGPLv3

