← Back to post

Edit history

Most recent

If anyone else is confused what this does, I pointed the clankers at it and asked. Way to bury the lede OP.

See [6] for some missing features (?) that would be nice to clear up.

[1]

  • You open a webpage normally.
  • The browser extension reads the page that your browser loaded.
  • It sends the page text, title, URL, and other details to your Hister server.
  • Hister stores and indexes that content.
  • Later, you search Hister for words from the page.
  • Hister finds the saved page, even when you cannot remember its title or URL.

[2]

so, like a Google search of visited sites and my own drive?

Yes. That is actually a reasonable use case.

If you pointed Hister at:

C:\Documents

it would:

  1. Walk the folder tree.

  2. Read supported files.

  3. Build a full-text index.

  4. Watch for changes.

  5. Re-index new or edited files automatically.

You could then search for things like:

tax invoice lenovo

lumbar radiculopathy

that python script with sqlite

“Methylphenidate” (exact phrase)

without caring which folder the file lives in.

Is it like Google?

Yes, but only for your own data.

Imagine Google, except the only websites are:

C:\Documents

D:\Notes

your browser history

pages you crawled yourself

You open a browser, type a search, and receive ranked results from your own files instead of the internet.

[3]

Can you access it from elsewhere on your LAN?

Yes.

By default it listens only on localhost:

127.0.0.1:4433

However, you can configure it to listen on all network interfaces:

0.0.0.0:4433

Then any device on your LAN can use the web interface or API, provided your firewall allows it. You should also enable an access token or user accounts if you expose it beyond your own PC.

[4] What interests me more for your home setup is that Hister is not just a search engine.

It already exposes:

a web UI,

a REST API,

and an MCP endpoint for AI assistants.

That means you could run one Hister instance on your server, index your documents once, and then:

search them yourself from any device on the LAN,

or let an AI search the same index through MCP.

If I wanted a self-hosted “Google for my own stuff” with minimal setup, Hister is much closer to that goal than Meilisearch. Meilisearch is an indexing engine. Hister is already a complete document search application.

[5]

Yes. By default, Hister stores its data in SQLite:

Search index and metadata: db.sqlite3

Stored HTML previews: separate files on disk

Configuration: YAML

It can also use PostgreSQL instead of SQLite if you want.

Regarding browser history, there are two separate things:

  1. Your browser’s history database (Chrome, Firefox, etc.).

  2. Hister’s own index.

They are independent after import.

For example:

Monday: You visit example.com.

The extension sends the page to Hister.

Hister stores the text, title, URL, metadata, and optionally the HTML preview.

Tuesday: You clear Chrome’s history.

The Hister copy remains. Clearing your browser history does not delete Hister’s copy. Hister is designed to be a long-term knowledge store, not a mirror of your browser history.

If you want Hister to forget something, you must delete it from Hister itself. The web UI and terminal both support deleting indexed entries.

I actually like that design. If it deleted documents every time you cleared browser history, it would defeat one of its main purposes. It treats browser history as an ingestion source, not as the source of truth.

[6]

From the current documentation:

Are sources timestamped?

Yes.

Each indexed document records at least:

Added timestamp.

Updated timestamp.

For browser pages, the visit timestamp.

URL, title, and metadata.

Is there a TTL (auto-expiry)?

No.

I could not find any TTL, age-based expiry, or retention policy.

Documents remain until you delete them or overwrite them with newer content.

Can I set a maximum database size?

Not that I can find.

There is no option such as:

10 GB maximum.

Delete oldest first.

Keep only the last 365 days.

Limit to 1 million documents.

You can reduce storage by:

Disabling HTML previews.

Limiting indexed file size.

Restricting indexed file types.

Excluding paths or domains.

Can I cleanly delete by topic?

Partly.

You can:

Delete individual documents.

Delete crawl jobs (but not the indexed documents).

Label imported content.

Query by labels and metadata.

Configure rules to stop future indexing.

I did not find built-in support for bulk deletion such as:

“Delete everything about Tesla.”

“Delete all Reddit pages.”

“Delete every page tagged AI.”

The API may allow scripted deletion, but I did not see a first-class “delete by query” feature in the documentation.

Is browser ingestion automatic?

Yes.

That is one of its main features.

Once the browser extension is installed and pointed at your server:

Every page you visit is captured automatically.

The extension extracts the rendered page.

It sends it to Hister.

If the page later changes, the extension periodically checks it and updates the stored copy.

Duplicate visits update the existing document rather than creating a new one.

You do not need to press a button.

My only concern

This project feels like it is missing a lifecycle policy.

For a personal knowledge base, I would want options such as:

Keep browser pages for 90 days.

Keep GitHub forever.

Keep PDFs forever.

Delete pages that nobody has opened for two years.

Maximum database size: 20 GB.

Delete by label or query.

I could not find those features in the current documentation.

The project is very good at collecting information. It appears less mature at managing its lifetime. That would probably become the first thing I wanted if I intended to leave it running for years.

[7]

Yes, on both counts.

Can I exclude particular sites?

Yes, and it is quite flexible.

Hister has skip rules that apply before a page enters the index. You can exclude:

Entire domains.

Subdomains.

URL patterns.

Login pages.

Admin pages.

Cookie consent pages.

Anything that matches a regular expression.

For example:

^reddit//.com/ ^mail//.google/.com/ ^https://.*.bank.com/

Those pages never enter the index.

The nice part is that the rules apply both to new browser captures and to re-index operations, so they stay excluded.

How does multi-tenancy work?

It is better than I expected.

Each user has:

Their own login.

Their own search index.

Their own browser history.

Their own skip rules.

Their own search aliases.

Their own API token.

If you and your wife both use the same Hister server:

You ├── browser history ├── indexed pages ├── rules └── API token

Wife ├── browser history ├── indexed pages ├── rules └── API token

Neither user can search the other’s documents.

There is also a global area.

You can configure directories such as:

/shared/docs

Those appear in everyone’s searches, while personal folders remain private.

One feature I really like

Directory indexing also supports user ownership.

For example:

alice -> /nextcloud/alice bob -> /nextcloud/bob global -> /shared/docs

The server enforces that visibility automatically. Even administrators do not automatically see other users’ indexed files.

Overall, I came into this expecting “browser history search”. After reading the documentation, it is closer to a lightweight, self-hosted personal search appliance with sensible multi-user support. The remaining gaps are lifecycle management features such as retention policies, TTL, storage quotas, and richer bulk deletion. Those do not appear to be built in.

Edited

If anyone else is confused wtf this does, I pointed the clankers at it and asked. Way to bury the lede OP.

See [6] for some missing features (?) that would be nice to clear up.

[1]

  • You open a webpage normally.
  • The browser extension reads the page that your browser loaded.
  • It sends the page text, title, URL, and other details to your Hister server.
  • Hister stores and indexes that content.
  • Later, you search Hister for words from the page.
  • Hister finds the saved page, even when you cannot remember its title or URL.

[2]

so, like a Google search of visited sites and my own drive?

Yes. That is actually a reasonable use case.

If you pointed Hister at:

C:\Documents

it would:

  1. Walk the folder tree.

  2. Read supported files.

  3. Build a full-text index.

  4. Watch for changes.

  5. Re-index new or edited files automatically.

You could then search for things like:

tax invoice lenovo

lumbar radiculopathy

that python script with sqlite

“Methylphenidate” (exact phrase)

without caring which folder the file lives in.

Is it like Google?

Yes, but only for your own data.

Imagine Google, except the only websites are:

C:\Documents

D:\Notes

your browser history

pages you crawled yourself

You open a browser, type a search, and receive ranked results from your own files instead of the internet.

[3]

Can you access it from elsewhere on your LAN?

Yes.

By default it listens only on localhost:

127.0.0.1:4433

However, you can configure it to listen on all network interfaces:

0.0.0.0:4433

Then any device on your LAN can use the web interface or API, provided your firewall allows it. You should also enable an access token or user accounts if you expose it beyond your own PC.

[4] What interests me more for your home setup is that Hister is not just a search engine.

It already exposes:

a web UI,

a REST API,

and an MCP endpoint for AI assistants.

That means you could run one Hister instance on your server, index your documents once, and then:

search them yourself from any device on the LAN,

or let an AI search the same index through MCP.

If I wanted a self-hosted “Google for my own stuff” with minimal setup, Hister is much closer to that goal than Meilisearch. Meilisearch is an indexing engine. Hister is already a complete document search application.

[5]

Yes. By default, Hister stores its data in SQLite:

Search index and metadata: db.sqlite3

Stored HTML previews: separate files on disk

Configuration: YAML

It can also use PostgreSQL instead of SQLite if you want.

Regarding browser history, there are two separate things:

  1. Your browser’s history database (Chrome, Firefox, etc.).

  2. Hister’s own index.

They are independent after import.

For example:

Monday: You visit example.com.

The extension sends the page to Hister.

Hister stores the text, title, URL, metadata, and optionally the HTML preview.

Tuesday: You clear Chrome’s history.

The Hister copy remains. Clearing your browser history does not delete Hister’s copy. Hister is designed to be a long-term knowledge store, not a mirror of your browser history.

If you want Hister to forget something, you must delete it from Hister itself. The web UI and terminal both support deleting indexed entries.

I actually like that design. If it deleted documents every time you cleared browser history, it would defeat one of its main purposes. It treats browser history as an ingestion source, not as the source of truth.

[6]

From the current documentation:

Are sources timestamped?

Yes.

Each indexed document records at least:

Added timestamp.

Updated timestamp.

For browser pages, the visit timestamp.

URL, title, and metadata.

Is there a TTL (auto-expiry)?

No.

I could not find any TTL, age-based expiry, or retention policy.

Documents remain until you delete them or overwrite them with newer content.

Can I set a maximum database size?

Not that I can find.

There is no option such as:

10 GB maximum.

Delete oldest first.

Keep only the last 365 days.

Limit to 1 million documents.

You can reduce storage by:

Disabling HTML previews.

Limiting indexed file size.

Restricting indexed file types.

Excluding paths or domains.

Can I cleanly delete by topic?

Partly.

You can:

Delete individual documents.

Delete crawl jobs (but not the indexed documents).

Label imported content.

Query by labels and metadata.

Configure rules to stop future indexing.

I did not find built-in support for bulk deletion such as:

“Delete everything about Tesla.”

“Delete all Reddit pages.”

“Delete every page tagged AI.”

The API may allow scripted deletion, but I did not see a first-class “delete by query” feature in the documentation.

Is browser ingestion automatic?

Yes.

That is one of its main features.

Once the browser extension is installed and pointed at your server:

Every page you visit is captured automatically.

The extension extracts the rendered page.

It sends it to Hister.

If the page later changes, the extension periodically checks it and updates the stored copy.

Duplicate visits update the existing document rather than creating a new one.

You do not need to press a button.

My only concern

This project feels like it is missing a lifecycle policy.

For a personal knowledge base, I would want options such as:

Keep browser pages for 90 days.

Keep GitHub forever.

Keep PDFs forever.

Delete pages that nobody has opened for two years.

Maximum database size: 20 GB.

Delete by label or query.

I could not find those features in the current documentation.

The project is very good at collecting information. It appears less mature at managing its lifetime. That would probably become the first thing I wanted if I intended to leave it running for years.

[7]

Yes, on both counts.

Can I exclude particular sites?

Yes, and it is quite flexible.

Hister has skip rules that apply before a page enters the index. You can exclude:

Entire domains.

Subdomains.

URL patterns.

Login pages.

Admin pages.

Cookie consent pages.

Anything that matches a regular expression.

For example:

^reddit//.com/ ^mail//.google/.com/ ^https://.*.bank.com/

Those pages never enter the index.

The nice part is that the rules apply both to new browser captures and to re-index operations, so they stay excluded.

How does multi-tenancy work?

It is better than I expected.

Each user has:

Their own login.

Their own search index.

Their own browser history.

Their own skip rules.

Their own search aliases.

Their own API token.

If you and your wife both use the same Hister server:

You ├── browser history ├── indexed pages ├── rules └── API token

Wife ├── browser history ├── indexed pages ├── rules └── API token

Neither user can search the other’s documents.

There is also a global area.

You can configure directories such as:

/shared/docs

Those appear in everyone’s searches, while personal folders remain private.

One feature I really like

Directory indexing also supports user ownership.

For example:

alice -> /nextcloud/alice bob -> /nextcloud/bob global -> /shared/docs

The server enforces that visibility automatically. Even administrators do not automatically see other users’ indexed files.

Overall, I came into this expecting “browser history search”. After reading the documentation, it is closer to a lightweight, self-hosted personal search appliance with sensible multi-user support. The remaining gaps are lifecycle management features such as retention policies, TTL, storage quotas, and richer bulk deletion. Those do not appear to be built in.

Edited

If anyone else is confused wtf this does, I pointed the clankers at it and asked. Way to bury the lede OP.

See [6] for some missing features (?) that would be nice to clear up.

[1]

  • You open a webpage normally.
  • The browser extension reads the page that your browser loaded.
  • It sends the page text, title, URL, and other details to your Hister server.
  • Hister stores and indexes that content.
  • Later, you search Hister for words from the page.
  • Hister finds the saved page, even when you cannot remember its title or URL.

[2]

so, like a Google search of visited sites and my own drive?

Yes. That is actually a reasonable use case.

If you pointed Hister at:

C:\Documents

it would:

  1. Walk the folder tree.

  2. Read supported files.

  3. Build a full-text index.

  4. Watch for changes.

  5. Re-index new or edited files automatically.

You could then search for things like:

tax invoice lenovo

lumbar radiculopathy

that python script with sqlite

“Methylphenidate” (exact phrase)

without caring which folder the file lives in.

Is it like Google?

Yes, but only for your own data.

Imagine Google, except the only websites are:

C:\Documents

D:\Notes

your browser history

pages you crawled yourself

You open a browser, type a search, and receive ranked results from your own files instead of the internet.

[3]

Can you access it from elsewhere on your LAN?

Yes.

By default it listens only on localhost:

127.0.0.1:4433

However, you can configure it to listen on all network interfaces:

0.0.0.0:4433

Then any device on your LAN can use the web interface or API, provided your firewall allows it. You should also enable an access token or user accounts if you expose it beyond your own PC.

[4] What interests me more for your home setup is that Hister is not just a search engine.

It already exposes:

a web UI,

a REST API,

and an MCP endpoint for AI assistants.

That means you could run one Hister instance on your server, index your documents once, and then:

search them yourself from any device on the LAN,

or let an AI search the same index through MCP.

If I wanted a self-hosted “Google for my own stuff” with minimal setup, Hister is much closer to that goal than Meilisearch. Meilisearch is an indexing engine. Hister is already a complete document search application.

[5]

Yes. By default, Hister stores its data in SQLite:

Search index and metadata: db.sqlite3

Stored HTML previews: separate files on disk

Configuration: YAML

It can also use PostgreSQL instead of SQLite if you want.

Regarding browser history, there are two separate things:

  1. Your browser’s history database (Chrome, Firefox, etc.).

  2. Hister’s own index.

They are independent after import.

For example:

Monday: You visit example.com.

The extension sends the page to Hister.

Hister stores the text, title, URL, metadata, and optionally the HTML preview.

Tuesday: You clear Chrome’s history.

The Hister copy remains. Clearing your browser history does not delete Hister’s copy. Hister is designed to be a long-term knowledge store, not a mirror of your browser history.

If you want Hister to forget something, you must delete it from Hister itself. The web UI and terminal both support deleting indexed entries.

I actually like that design. If it deleted documents every time you cleared browser history, it would defeat one of its main purposes. It treats browser history as an ingestion source, not as the source of truth.

[6]

From the current documentation:

Are sources timestamped?

Yes.

Each indexed document records at least:

Added timestamp.

Updated timestamp.

For browser pages, the visit timestamp.

URL, title, and metadata.

Is there a TTL (auto-expiry)?

No.

I could not find any TTL, age-based expiry, or retention policy.

Documents remain until you delete them or overwrite them with newer content.

Can I set a maximum database size?

Not that I can find.

There is no option such as:

10 GB maximum.

Delete oldest first.

Keep only the last 365 days.

Limit to 1 million documents.

You can reduce storage by:

Disabling HTML previews.

Limiting indexed file size.

Restricting indexed file types.

Excluding paths or domains.

Can I cleanly delete by topic?

Partly.

You can:

Delete individual documents.

Delete crawl jobs (but not the indexed documents).

Label imported content.

Query by labels and metadata.

Configure rules to stop future indexing.

I did not find built-in support for bulk deletion such as:

“Delete everything about Tesla.”

“Delete all Reddit pages.”

“Delete every page tagged AI.”

The API may allow scripted deletion, but I did not see a first-class “delete by query” feature in the documentation.

Is browser ingestion automatic?

Yes.

That is one of its main features.

Once the browser extension is installed and pointed at your server:

Every page you visit is captured automatically.

The extension extracts the rendered page.

It sends it to Hister.

If the page later changes, the extension periodically checks it and updates the stored copy.

Duplicate visits update the existing document rather than creating a new one.

You do not need to press a button.

My only concern

This project feels like it is missing a lifecycle policy.

For a personal knowledge base, I would want options such as:

Keep browser pages for 90 days.

Keep GitHub forever.

Keep PDFs forever.

Delete pages that nobody has opened for two years.

Maximum database size: 20 GB.

Delete by label or query.

I could not find those features in the current documentation.

The project is very good at collecting information. It appears less mature at managing its lifetime. That would probably become the first thing I wanted if I intended to leave it running for years.

[7]

Yes, on both counts.

Can I exclude particular sites?

Yes, and it is quite flexible.

Hister has skip rules that apply before a page enters the index. You can exclude:

Entire domains.

Subdomains.

URL patterns.

Login pages.

Admin pages.

Cookie consent pages.

Anything that matches a regular expression.

For example:

^reddit//.com/ ^mail//.google/.com/ ^https://.*.bank.com/

Those pages never enter the index.

The nice part is that the rules apply both to new browser captures and to re-index operations, so they stay excluded.

How does multi-tenancy work?

It is better than I expected.

Each user has:

Their own login.

Their own search index.

Their own browser history.

Their own skip rules.

Their own search aliases.

Their own API token.

If you and your wife both use the same Hister server:

Bobby ├── browser history ├── indexed pages ├── rules └── API token

Wife ├── browser history ├── indexed pages ├── rules └── API token

Neither user can search the other’s documents.

There is also a global area.

You can configure directories such as:

/shared/docs

Those appear in everyone’s searches, while personal folders remain private.

One feature I really like

Directory indexing also supports user ownership.

For example:

alice -> /nextcloud/alice bob -> /nextcloud/bob global -> /shared/docs

The server enforces that visibility automatically. Even administrators do not automatically see other users’ indexed files.

Overall, I came into this expecting “browser history search”. After reading the documentation, it is closer to a lightweight, self-hosted personal search appliance with sensible multi-user support. The remaining gaps are lifecycle management features such as retention policies, TTL, storage quotas, and richer bulk deletion. Those do not appear to be built in.

Edited

If anyone else is confused wtf this does, I pointed the clankers at it and asked. Way to bury the lede OP.

See [6] for some missing features (?) that would be nice to clear up.

[1]

  • You open a webpage normally.
  • The browser extension reads the page that your browser loaded.
  • It sends the page text, title, URL, and other details to your Hister server.
  • Hister stores and indexes that content.
  • Later, you search Hister for words from the page.
  • Hister finds the saved page, even when you cannot remember its title or URL.

[2]

so, like a Google search of visited sites and my own drive?

Yes. That is actually a reasonable use case.

If you pointed Hister at:

C:\Documents

it would:

  1. Walk the folder tree.

  2. Read supported files.

  3. Build a full-text index.

  4. Watch for changes.

  5. Re-index new or edited files automatically.

You could then search for things like:

tax invoice lenovo

lumbar radiculopathy

that python script with sqlite

“Methylphenidate” (exact phrase)

without caring which folder the file lives in.

Is it like Google?

Yes, but only for your own data.

Imagine Google, except the only websites are:

C:\Documents

D:\Notes

your browser history

pages you crawled yourself

You open a browser, type a search, and receive ranked results from your own files instead of the internet.

[3]

Can you access it from elsewhere on your LAN?

Yes.

By default it listens only on localhost:

127.0.0.1:4433

However, you can configure it to listen on all network interfaces:

0.0.0.0:4433

Then any device on your LAN can use the web interface or API, provided your firewall allows it. You should also enable an access token or user accounts if you expose it beyond your own PC.

[4] What interests me more for your home setup is that Hister is not just a search engine.

It already exposes:

a web UI,

a REST API,

and an MCP endpoint for AI assistants.

That means you could run one Hister instance on your server, index your documents once, and then:

search them yourself from any device on the LAN,

or let an AI search the same index through MCP.

If I wanted a self-hosted “Google for my own stuff” with minimal setup, Hister is much closer to that goal than Meilisearch. Meilisearch is an indexing engine. Hister is already a complete document search application.

[5]

Yes. By default, Hister stores its data in SQLite:

Search index and metadata: db.sqlite3

Stored HTML previews: separate files on disk

Configuration: YAML

It can also use PostgreSQL instead of SQLite if you want.

Regarding browser history, there are two separate things:

  1. Your browser’s history database (Chrome, Firefox, etc.).

  2. Hister’s own index.

They are independent after import.

For example:

Monday: You visit example.com.

The extension sends the page to Hister.

Hister stores the text, title, URL, metadata, and optionally the HTML preview.

Tuesday: You clear Chrome’s history.

The Hister copy remains. Clearing your browser history does not delete Hister’s copy. Hister is designed to be a long-term knowledge store, not a mirror of your browser history.

If you want Hister to forget something, you must delete it from Hister itself. The web UI and terminal both support deleting indexed entries.

I actually like that design. If it deleted documents every time you cleared browser history, it would defeat one of its main purposes. It treats browser history as an ingestion source, not as the source of truth.

[6]

From the current documentation:

Are sources timestamped?

Yes.

Each indexed document records at least:

Added timestamp.

Updated timestamp.

For browser pages, the visit timestamp.

URL, title, and metadata.

Is there a TTL (auto-expiry)?

No.

I could not find any TTL, age-based expiry, or retention policy.

Documents remain until you delete them or overwrite them with newer content.

Can I set a maximum database size?

Not that I can find.

There is no option such as:

10 GB maximum.

Delete oldest first.

Keep only the last 365 days.

Limit to 1 million documents.

You can reduce storage by:

Disabling HTML previews.

Limiting indexed file size.

Restricting indexed file types.

Excluding paths or domains.

Can I cleanly delete by topic?

Partly.

You can:

Delete individual documents.

Delete crawl jobs (but not the indexed documents).

Label imported content.

Query by labels and metadata.

Configure rules to stop future indexing.

I did not find built-in support for bulk deletion such as:

“Delete everything about Tesla.”

“Delete all Reddit pages.”

“Delete every page tagged AI.”

The API may allow scripted deletion, but I did not see a first-class “delete by query” feature in the documentation.

Is browser ingestion automatic?

Yes.

That is one of its main features.

Once the browser extension is installed and pointed at your server:

Every page you visit is captured automatically.

The extension extracts the rendered page.

It sends it to Hister.

If the page later changes, the extension periodically checks it and updates the stored copy.

Duplicate visits update the existing document rather than creating a new one.

You do not need to press a button.

My only concern

This project feels like it is missing a lifecycle policy.

For a personal knowledge base, I would want options such as:

Keep browser pages for 90 days.

Keep GitHub forever.

Keep PDFs forever.

Delete pages that nobody has opened for two years.

Maximum database size: 20 GB.

Delete by label or query.

I could not find those features in the current documentation.

The project is very good at collecting information. It appears less mature at managing its lifetime. That would probably become the first thing I wanted if I intended to leave it running for years.

[7]

Yes, on both counts.

Can I exclude particular sites?

Yes, and it is quite flexible.

Hister has skip rules that apply before a page enters the index. You can exclude:

Entire domains.

Subdomains.

URL patterns.

Login pages.

Admin pages.

Cookie consent pages.

Anything that matches a regular expression.

For example:

^reddit/\.com/ ^mail/\.google\.com/ ^https://.*.bank.com/

Those pages never enter the index.

The nice part is that the rules apply both to new browser captures and to re-index operations, so they stay excluded.

How does multi-tenancy work?

It is better than I expected.

Each user has:

Their own login.

Their own search index.

Their own browser history.

Their own skip rules.

Their own search aliases.

Their own API token.

If you and your wife both use the same Hister server:

Bobby ├── browser history ├── indexed pages ├── rules └── API token

Wife ├── browser history ├── indexed pages ├── rules └── API token

Neither user can search the other’s documents.

There is also a global area.

You can configure directories such as:

/shared/docs

Those appear in everyone’s searches, while personal folders remain private.

One feature I really like

Directory indexing also supports user ownership.

For example:

alice -> /nextcloud/alice bob -> /nextcloud/bob global -> /shared/docs

The server enforces that visibility automatically. Even administrators do not automatically see other users’ indexed files.

Overall, I came into this expecting “browser history search”. After reading the documentation, it is closer to a lightweight, self-hosted personal search appliance with sensible multi-user support. The remaining gaps are lifecycle management features such as retention policies, TTL, storage quotas, and richer bulk deletion. Those do not appear to be built in.

Edited

If anyone else is confused wtf this does, I pointed the clankers at it and asked. Way to bury the lede OP.

See [6] for some missing features (?) that would be nice to clear up.

[1]

  • You open a webpage normally.
  • The browser extension reads the page that your browser loaded.
  • It sends the page text, title, URL, and other details to your Hister server.
  • Hister stores and indexes that content.
  • Later, you search Hister for words from the page.
  • Hister finds the saved page, even when you cannot remember its title or URL.

[2]

so, like a Google search of visited sites and my own drive?

Yes. That is actually a reasonable use case.

If you pointed Hister at:

C:\Documents

it would:

  1. Walk the folder tree.

  2. Read supported files.

  3. Build a full-text index.

  4. Watch for changes.

  5. Re-index new or edited files automatically.

You could then search for things like:

tax invoice lenovo

lumbar radiculopathy

that python script with sqlite

“Methylphenidate” (exact phrase)

without caring which folder the file lives in.

Is it like Google?

Yes, but only for your own data.

Imagine Google, except the only websites are:

C:\Documents

D:\Notes

your browser history

pages you crawled yourself

You open a browser, type a search, and receive ranked results from your own files instead of the internet.

Can you access it from elsewhere on your LAN?

Yes.

By default it listens only on localhost:

127.0.0.1:4433

However, you can configure it to listen on all network interfaces:

0.0.0.0:4433

Then any device on your LAN can use the web interface or API, provided your firewall allows it. You should also enable an access token or user accounts if you expose it beyond your own PC.

[4] What interests me more for your home setup is that Hister is not just a search engine.

It already exposes:

a web UI,

a REST API,

and an MCP endpoint for AI assistants.

That means you could run one Hister instance on your server, index your documents once, and then:

search them yourself from any device on the LAN,

or let an AI search the same index through MCP.

If I wanted a self-hosted “Google for my own stuff” with minimal setup, Hister is much closer to that goal than Meilisearch. Meilisearch is an indexing engine. Hister is already a complete document search application.

[5]

Yes. By default, Hister stores its data in SQLite:

Search index and metadata: db.sqlite3

Stored HTML previews: separate files on disk

Configuration: YAML

It can also use PostgreSQL instead of SQLite if you want.

Regarding browser history, there are two separate things:

  1. Your browser’s history database (Chrome, Firefox, etc.).

  2. Hister’s own index.

They are independent after import.

For example:

Monday: You visit example.com.

The extension sends the page to Hister.

Hister stores the text, title, URL, metadata, and optionally the HTML preview.

Tuesday: You clear Chrome’s history.

The Hister copy remains. Clearing your browser history does not delete Hister’s copy. Hister is designed to be a long-term knowledge store, not a mirror of your browser history.

If you want Hister to forget something, you must delete it from Hister itself. The web UI and terminal both support deleting indexed entries.

I actually like that design. If it deleted documents every time you cleared browser history, it would defeat one of its main purposes. It treats browser history as an ingestion source, not as the source of truth.

[6]

From the current documentation:

Are sources timestamped?

Yes.

Each indexed document records at least:

Added timestamp.

Updated timestamp.

For browser pages, the visit timestamp.

URL, title, and metadata.

Is there a TTL (auto-expiry)?

No.

I could not find any TTL, age-based expiry, or retention policy.

Documents remain until you delete them or overwrite them with newer content.

Can I set a maximum database size?

Not that I can find.

There is no option such as:

10 GB maximum.

Delete oldest first.

Keep only the last 365 days.

Limit to 1 million documents.

You can reduce storage by:

Disabling HTML previews.

Limiting indexed file size.

Restricting indexed file types.

Excluding paths or domains.

Can I cleanly delete by topic?

Partly.

You can:

Delete individual documents.

Delete crawl jobs (but not the indexed documents).

Label imported content.

Query by labels and metadata.

Configure rules to stop future indexing.

I did not find built-in support for bulk deletion such as:

“Delete everything about Tesla.”

“Delete all Reddit pages.”

“Delete every page tagged AI.”

The API may allow scripted deletion, but I did not see a first-class “delete by query” feature in the documentation.

Is browser ingestion automatic?

Yes.

That is one of its main features.

Once the browser extension is installed and pointed at your server:

Every page you visit is captured automatically.

The extension extracts the rendered page.

It sends it to Hister.

If the page later changes, the extension periodically checks it and updates the stored copy.

Duplicate visits update the existing document rather than creating a new one.

You do not need to press a button.

My only concern

This project feels like it is missing a lifecycle policy.

For a personal knowledge base, I would want options such as:

Keep browser pages for 90 days.

Keep GitHub forever.

Keep PDFs forever.

Delete pages that nobody has opened for two years.

Maximum database size: 20 GB.

Delete by label or query.

I could not find those features in the current documentation.

The project is very good at collecting information. It appears less mature at managing its lifetime. That would probably become the first thing I wanted if I intended to leave it running for years.

Edited

If anyone else is confused wtf this does, I pointed the clankers at it and asked. Way to bury the lede OP.

[1]

  • You open a webpage normally.
  • The browser extension reads the page that your browser loaded.
  • It sends the page text, title, URL, and other details to your Hister server.
  • Hister stores and indexes that content.
  • Later, you search Hister for words from the page.
  • Hister finds the saved page, even when you cannot remember its title or URL.

[2]

so, like a Google search of visited sites and my own drive?

Yes. That is actually a reasonable use case.

If you pointed Hister at:

C:\Documents

it would:

  1. Walk the folder tree.

  2. Read supported files.

  3. Build a full-text index.

  4. Watch for changes.

  5. Re-index new or edited files automatically.

You could then search for things like:

tax invoice lenovo

lumbar radiculopathy

that python script with sqlite

“Methylphenidate” (exact phrase)

without caring which folder the file lives in.

Is it like Google?

Yes, but only for your own data.

Imagine Google, except the only websites are:

C:\Documents

D:\Notes

your browser history

pages you crawled yourself

You open a browser, type a search, and receive ranked results from your own files instead of the internet.

Can you access it from elsewhere on your LAN?

Yes.

By default it listens only on localhost:

127.0.0.1:4433

However, you can configure it to listen on all network interfaces:

0.0.0.0:4433

Then any device on your LAN can use the web interface or API, provided your firewall allows it. You should also enable an access token or user accounts if you expose it beyond your own PC.

What interests me more for your home setup is that Hister is not just a search engine.

It already exposes:

a web UI,

a REST API,

and an MCP endpoint for AI assistants.

That means you could run one Hister instance on your server, index your documents once, and then:

search them yourself from any device on the LAN,

or let an AI search the same index through MCP.

If I wanted a self-hosted “Google for my own stuff” with minimal setup, Hister is much closer to that goal than Meilisearch. Meilisearch is an indexing engine. Hister is already a complete document search application.

[3]

Yes. By default, Hister stores its data in SQLite:

Search index and metadata: db.sqlite3

Stored HTML previews: separate files on disk

Configuration: YAML

It can also use PostgreSQL instead of SQLite if you want.

Regarding browser history, there are two separate things:

  1. Your browser’s history database (Chrome, Firefox, etc.).

  2. Hister’s own index.

They are independent after import.

For example:

Monday: You visit example.com.

The extension sends the page to Hister.

Hister stores the text, title, URL, metadata, and optionally the HTML preview.

Tuesday: You clear Chrome’s history.

The Hister copy remains. Clearing your browser history does not delete Hister’s copy. Hister is designed to be a long-term knowledge store, not a mirror of your browser history.

If you want Hister to forget something, you must delete it from Hister itself. The web UI and terminal both support deleting indexed entries.

I actually like that design. If it deleted documents every time you cleared browser history, it would defeat one of its main purposes. It treats browser history as an ingestion source, not as the source of truth.

From the current documentation:

Are sources timestamped?

Yes.

Each indexed document records at least:

Added timestamp.

Updated timestamp.

For browser pages, the visit timestamp.

URL, title, and metadata.

Is there a TTL (auto-expiry)?

No.

I could not find any TTL, age-based expiry, or retention policy.

Documents remain until you delete them or overwrite them with newer content.

Can I set a maximum database size?

Not that I can find.

There is no option such as:

10 GB maximum.

Delete oldest first.

Keep only the last 365 days.

Limit to 1 million documents.

You can reduce storage by:

Disabling HTML previews.

Limiting indexed file size.

Restricting indexed file types.

Excluding paths or domains.

Can I cleanly delete by topic?

Partly.

You can:

Delete individual documents.

Delete crawl jobs (but not the indexed documents).

Label imported content.

Query by labels and metadata.

Configure rules to stop future indexing.

I did not find built-in support for bulk deletion such as:

“Delete everything about Tesla.”

“Delete all Reddit pages.”

“Delete every page tagged AI.”

The API may allow scripted deletion, but I did not see a first-class “delete by query” feature in the documentation.

Is browser ingestion automatic?

Yes.

That is one of its main features.

Once the browser extension is installed and pointed at your server:

Every page you visit is captured automatically.

The extension extracts the rendered page.

It sends it to Hister.

If the page later changes, the extension periodically checks it and updates the stored copy.

Duplicate visits update the existing document rather than creating a new one.

You do not need to press a button.

My only concern

This project feels like it is missing a lifecycle policy.

For a personal knowledge base, I would want options such as:

Keep browser pages for 90 days.

Keep GitHub forever.

Keep PDFs forever.

Delete pages that nobody has opened for two years.

Maximum database size: 20 GB.

Delete by label or query.

I could not find those features in the current documentation.

The project is very good at collecting information. It appears less mature at managing its lifetime. That would probably become the first thing I wanted if I intended to leave it running for years.

Original

If anyone else is confused wtf this does, I pointed the clankers at it and asked. Way to bury the lede OP.

[1]

  • You open a webpage normally.
  • The browser extension reads the page that your browser loaded.
  • It sends the page text, title, URL, and other details to your Hister server.
  • Hister stores and indexes that content.
  • Later, you search Hister for words from the page.
  • Hister finds the saved page, even when you cannot remember its title or URL.

[2]

so, like a Google search of visited sites and my own drive?

Yes. That is actually a reasonable use case.

If you pointed Hister at:

C:\Documents

it would:

  1. Walk the folder tree.

  2. Read supported files.

  3. Build a full-text index.

  4. Watch for changes.

  5. Re-index new or edited files automatically.

You could then search for things like:

tax invoice lenovo

lumbar radiculopathy

that python script with sqlite

“Methylphenidate” (exact phrase)

without caring which folder the file lives in.

Is it like Google?

Yes, but only for your own data.

Imagine Google, except the only websites are:

C:\Documents

D:\Notes

your browser history

pages you crawled yourself

You open a browser, type a search, and receive ranked results from your own files instead of the internet.

Can you access it from elsewhere on your LAN?

Yes.

By default it listens only on localhost:

127.0.0.1:4433

However, you can configure it to listen on all network interfaces:

0.0.0.0:4433

Then any device on your LAN can use the web interface or API, provided your firewall allows it. You should also enable an access token or user accounts if you expose it beyond your own PC.

What interests me more for your home setup is that Hister is not just a search engine.

It already exposes:

a web UI,

a REST API,

and an MCP endpoint for AI assistants.

That means you could run one Hister instance on your server, index your documents once, and then:

search them yourself from any device on the LAN,

or let an AI search the same index through MCP.

If I wanted a self-hosted “Google for my own stuff” with minimal setup, Hister is much closer to that goal than Meilisearch. Meilisearch is an indexing engine. Hister is already a complete document search application.