Create a local Reddit dashboard from a scoped SQLite archive
Create a RedLens dashboard from public Reddit data, inspect the records behind its matrices, and export an HTML snapshot with clear limits.

To create a dashboard in RedLens, first collect public Reddit records into a SQLite file, then run serve against that file. Use page instead if you want a standalone report for one tracked topic rather than an account-network dashboard. Neither workflow requires a Reddit account or an LLM key. RedLens’s command guide distinguishes these outputs.
This example collects posts mentioning SQLite in three selected communities, adds their comment threads, and opens a local dashboard. The result describes the collected archive, not all Reddit discussion about SQLite.
1. Install and choose a separate database
RedLens requires Python 3.11 or newer. From the root of a local checkout of the RedLens repository, install its package:
python -m pip install -e .
redlens --version
redlens --help
The project’s package configuration defines the Python requirement, runtime dependencies, and redlens command.
Use a new file, sqlite-discussion.db, in a dedicated project directory. Keeping unrelated investigations separate matters: serve operates on the database, not on a topic selected by a --topic flag. It also automatically loads cohorts.csv and brands.csv beside the database if present; for this unlabeled example, keep those files out of the project directory. Server configuration
Put the global --db option before the subcommand, as the CLI parser requires. Run the following commands from your project directory.
Skip the optional LLM setup for a keyless workflow. If you already have a key configured, record that fact: topic tracking automatically attempts an LLM relevance filter on unscored matches, which affects which records appear in topic views. Topic-tracking implementation
2. Collect a bounded topic archive
redlens --db sqlite-discussion.db track sqlite \
--query sqlite \
--subreddits sqlite,Python,dataengineering \
--sources none \
--days 30 \
--comments \
--yes
redlens --db sqlite-discussion.db show --topic sqlite
Here the input is explicit:
--sources nonedisables subreddit discovery; on this new topic, only the named communities form the search set.--days 30sets the initial trailing post-collection window.--query sqlitesearches for that term in posts.--commentsretrieves available comment threads under matched posts with a positive stored comment count. It is not a search for every SQLite-related comment in those communities, and the thread fetch is not restricted to the post-search date window.--yesavoids the interactive subreddit picker.
RedLens searches within its remembered subreddit set rather than using global full-text search. Comma-separated query terms are OR’d by issuing separate searches. After a successful collection establishes a cursor, repeating tracking with unchanged keywords, communities, and window is incremental for posts; --comments fetches eligible threads again. These behaviors are documented in the tracking code and CLI options.
Check collection warnings and the show output before interpreting charts: matched-post count, number of communities in the remembered search set, observed post-date range, and last tracking time. Subreddit failures produce warnings, but individual comment-thread failures are skipped without a warning. Neither a completed command nor an empty result establishes complete coverage. Collection and error handling
3. Open the dashboard and inspect its evidence
redlens --db sqlite-discussion.db serve \
--title "SQLite discussion archive"
The command opens a browser and starts a local server on loopback address 127.0.0.1, port 8000. Keep the terminal running; press Ctrl-C to stop. If that port is occupied, add --port 8001. The dashboard’s query layer opens the database read-only. Server implementation
Start with three views:
- Account network: inspect pairs sharing communities or comment threads.
- Shared-subreddit footprint: see where collected accounts overlap.
- Shared threads: inspect discussions with comments from multiple collected accounts.
Click a matrix cell to inspect the underlying evidence. The pairwise matrix counts shared subreddits and threads both accounts commented in; those counts alone do not establish synchronized timing, common control, or paid promotion. This collection method already selects people discussing the same subject, so overlap is expected. Co-activity calculations
The implementation checked October 11, 2026, limits matrix columns to the 40 most active eligible accounts and shared-subreddit/thread lists to 60 rows. With no cohort labels loaded, matrix selection draws from all authors in the database. These are their collected records—not their full Reddit histories. Do not treat the displayed matrix as a complete account census. Query limits and scope
For table-level checks, stop serve and run:
redlens --db sqlite-discussion.db explore
explore provides schema inspection, searchable rows, and a read-only SQL console. Its console returns at most 1,000 rows, so use aggregate queries for totals rather than counting displayed results. Explorer implementation
4. Keep the right output
For a static network dashboard:
redlens --db sqlite-discussion.db report \
--title "SQLite discussion archive" \
--anon -o sqlite-network.html
For a topic-specific HTML report:
redlens --db sqlite-discussion.db page sqlite \
-o sqlite-topic.html --open
The network export is self-contained, but it is not a complete replacement for the live dashboard. It captures overview views, evidence for up to 50 top pairs ranked by shared-subreddit plus shared-thread counts, and selected account profiles. Deep content pagination and uncaptured evidence are unavailable. --anon pseudonymizes account usernames, including occurrences in captured text, but does not remove every identifying detail. Review quotations, links, the title, and the included local database path before sharing. The page command above has no equivalent --anon option. Static-export implementation and page options
Keep the collection command, RedLens version, collection time, database, and any label or brand files together. Re-running collection can extend the archive; it does not turn it into a rolling 30-day dataset by removing older records. An exported HTML file remains a snapshot. If you need records for another analysis tool, follow the CSV export and data-check guide.