Skip to main content

Caicurator

Caicurator finds all the Character AI indices from your web browser history and then displays every bot you had ever talked to in a convenient web menu.

Screenshot

https://github.com/user-attachments/assets/818ec3e3-1602-4237-97d2-4663e912adac

Usage

Run caicurator to see this error message:

2026-01-24 20:40:00.067 | ERROR    | caicurator.cli:main:19 - Configuration not found. '/home/myxi/.config/caicurator/config.ini' doesn't exist.

Create a config.ini at the path the error wants. Please head over to Configuration for more information.

Installation

From PyPi

pip install caicurator

From Source

pip install git+https://github.com/eeriemyxi/caicurator.git

Configuration

Caicurator uses a config.ini file to store all the configurations.

[common]
LOG_PATH = <default>

[auth]
TOKEN = ...

[browser]
CHROMIUM_HISTORY_FILES = ["~/.config/vivaldi/Default/History"]
GECKO_HISTORY_FILES = ["~/.zen/3g4fsk4q.Default (release)/places.sqlite"]

[fetch]
PATH = <default>
BATCH_SIZE = 4
SLEEP_RANGE = 1, 5
HTML_GEN_INTERVAL = 2

[html]
PATH = <default>
SORTING = newest

<default> means the default value will be used. Using this means the relevant content will be under the configuration directory, e.g., .../chars/, .../index.html, and .../logs/.


common.LOG_PATH is the path to the log file. A directory.


auth.TOKEN is the token that you get from CharacterAI. You can find the token in the dev tools of your browser: Copy the Authorization request header's value without Token.


  • browser.CHROMIUM_HISTORY_FILES is a list of paths to the History file of your Chromium-based browser profiles (e.g., Vivaldi, Chrome).
  • browser.GECKO_HISTORY_FILES is a list of paths to the places.sqlite file of your Gecko-based browser profiles (e.g., Firefox, Zen).

  • fetch.PATH is the path to the directory that contains all the character indices.
  • fetch.BATCH_SIZE is the number of async requests that will be sent to the server.
  • fetch.SLEEP_RANGE is the range of seconds that will be randomly chosen to sleep between each batch.
  • fetch.HTML_GEN_INTERVAL is the interval of generating the HTML page; e.g., 2 means it generates every 2 batches.

  • html.PATH is the path to the HTML file.
  • html.SORTING is the sorting method. It can be newest or oldest.

Finding History File

Gecko-based browsers (Firefox, LibreWolf, Zen, Waterfox, etc.)

  • Type about:profiles → see "This is the profile in use" section → full path shown.
  • Or about:support → "Profile Folder" row → "Open Folder" button.

Under the profile folder you will find the places.sqlite file.

Chromium-based browsers (Chrome, Edge, Brave, Vivaldi, Opera, etc.)

The default profile is almost always the folder named Default (not numbered). Additional profiles are Profile 1, Profile 2, etc.

  • Type chrome://version (or edge://version, brave://version, etc.) in the address bar.
  • Look for "Profile Path" line → shows full path to the "current active profile" (e.g. ...\User Data\Default or ...\User Data\Profile 3).
  • Click the path (or copy-paste into File Explorer / file manager) to open it directly.

Under the profile folder you will find the History file.

Command-line Arguments

> caicurator
Usage: caicurator [OPTIONS] COMMAND [ARGS]...

  Curate and display Character AI web browser history

Options:
  -L, --log-level [trace|debug|info|success|warning|error|critical]
  -v, -V, --version               Show the version and exit.
  --help                          Show this message and exit.

Commands:
  chars  manage characters index (update)
  html   manage the HTML page (open, update)
  info   show helpful information

  🔗 Homepage: https://github.com/eeriemyxi/caicurator
> caicurator chars
Usage: caicurator chars [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  update  update the characters index with latest information.
> caicurator html
Usage: caicurator html [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  open    open the HTML page on your default web browser.
  update  update the HTML page with latest information.

Metadata

Release files for caicurator 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for caicurator 0.7.0
File Size Uploaded Provenance Actions
caicurator-0.7.0.tar.gz 846.8 kB With provenance Details for caicurator-0.7.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for caicurator 0.7.0
File Interpreter ABI Platform Actions
caicurator-0.7.0-py3-none-any.whl Python 3 none any Details for caicurator-0.7.0-py3-none-any.whl

Total release size: 860.3 kB

Release files / caicurator-0.7.0.tar.gz

Download URL caicurator-0.7.0.tar.gz
Size 846.8 kB
Tags Source
SHA-256 checksum
How to use checksums
2e6c98d7d92f049ab1d3669d4130f176c2f0e7b04740ab1ac31ec4734751b932
BLAKE2b-256 checksum
How to use checksums
e4db48eefc73aa2d14e0b9ecd9ec5ed1de0bb80354f15b4c1a8132be76b12361
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 25, 2026.

Transparency log

Release files / caicurator-0.7.0-py3-none-any.whl

Download URL caicurator-0.7.0-py3-none-any.whl
Size 13.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c6f62229090fdec41d2162636930d24d871b15948fb9977b580bad485a66893f
BLAKE2b-256 checksum
How to use checksums
6a0ef0733601091bb81e8e8562912abcba86e5f3ec30670582a7529f83277c86
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 25, 2026.

Transparency log

Security for caicurator 0.7.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for caicurator-0.7.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 25, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page