---
title: "Scribe"
description: "Scribe is a Marketplace integration for Home Assistant. It has 81 installs sharing analytics, works locally and was last updated October 26, 2026."
canonical: "https://vulpo.app/integrations/marketplace/jonathan-gtd-scribe"
url: "https://vulpo.app/integrations/marketplace/jonathan-gtd-scribe.md"
last-updated: "2026-10-27"
version: "1.4"
---

# Scribe

> Scribe is a Marketplace integration for Home Assistant. It has 81 installs sharing analytics, works locally and was last updated October 26, 2026.

Scribe records Home Assistant states and events into a TimescaleDB database through asyncpg. It runs alongside the built-in recorder and keeps long history in TimescaleDB, with old chunks compressed automatically and entity, device, area, user and integration context stored with the values. Recording can be filtered by domain, entity, name pattern, attribute and event type, and writes are batched, with an optional memory buffer that retries when the database is down. Optional sensors report write activity, chunk counts and table sizes, and hourly and daily summary views can be maintained for long-range charts. Retention policies for states and events, a custom schema and SSL with client certificates are available in the advanced options. Problems such as an unreachable database or a full buffer appear as repair notices, and diagnostics and system health are included. It is added through the Home Assistant interface with a database URL and connects locally.

Automatic summary of the README and code of jonathan-gtd/scribe. Something wrong, or are you the maintainer and want your own text here? [Get in touch](https://vulpo.app/contact)

[Open in My Home Assistant](https://my.home-assistant.io/redirect/hacs_repository/?owner=jonathan-gtd&repository=scribe&category=integration)

On Home Assistant 2026.11 or newer? [Open it in the Marketplace](https://my.home-assistant.io/redirect/marketplace_repository/?owner=jonathan-gtd&repository=scribe&category=integration)

## Supports

- **Works locally**: Talks to your devices on your own network. No vendor cloud in between.
- **From the Marketplace**: Installed through the Marketplace, formerly HACS.
- **Actively maintained**: Its author released or pushed a change in the last six months.

## Setting it up

Install it from the Marketplace and restart Home Assistant, then add it under Settings, Devices and services.

### Connect to TimescaleDB

- **Database URL**: Full PostgreSQL connection URL, e.g. postgresql://scribe:secret@192.168.1.10:5432/scribe

### After setup

- **Record state changes**: Write every state change to TimescaleDB
- **Record events**: Write Home Assistant events (automations, scripts…) to TimescaleDB
- **Include domains**: Only record entities from these domains. Leave empty to include all.
- **Exclude domains**: Never record entities from these domains
- **Include entities**: Only record these specific entities. Leave empty to include all.
- **Exclude entities**: Never record these specific entities
- **Include entity globs**: Only record entities matching these patterns (e.g. sensor.temp\_\*)
- **Exclude entity globs**: Never record entities matching these patterns
- **Exclude attributes**: Drop these attribute keys before writing (saves space)
- **Include event types**: Only record these specific event types. Leave empty to record all events.
- **Exclude event types**: Never record these event types (applied after include\_events).
- **Batch size**: Number of rows accumulated before a flush is triggered (default 500)
- **Flush interval (seconds)**: Maximum seconds between automatic flushes (default 30). Each flush is one transaction, so a short interval writes a handful of rows at a time instead of batching them. What a long one risks is the last interval of history, and only if Home Assistant is killed — a normal shutdown writes everything out.
- **Max queue size**: Maximum pending writes before oldest are dropped (default 10000)
- **Buffer on database failure**: Keep events in memory and retry when the database becomes available again
- **Enable I/O statistics sensors**: Expose real-time write counters, buffer size and write duration as sensors
- **Enable chunk statistics sensors**: Expose per-table chunk counts (total / compressed / uncompressed) as sensors
- **Chunk stats refresh interval**: How often (in minutes) chunk stats are refreshed from the database
- **Enable size statistics sensors**: Expose per-table sizes and compression ratios as sensors
- **Size stats refresh interval**: How often (in minutes) size stats are refreshed from the database
- **How often the I/O sensors publish**: Seconds between two values of the I/O sensors. Every change is a row Scribe records about itself, so a short interval fills your history with Scribe's own counters. 60 seconds by default.
- **Sync areas table**: Keep a mirror of Home Assistant areas in TimescaleDB
- **Sync devices table**: Keep a mirror of Home Assistant devices in TimescaleDB
- **Sync integrations table**: Keep a mirror of config entries (integrations) in TimescaleDB
- **Sync users table**: Keep a mirror of Home Assistant users in TimescaleDB
- **Hourly and daily summaries**: Keep pre-computed hourly and daily averages of your states, maintained by TimescaleDB. Charts over months or years then read thousands of rows instead of millions. Adds the states\_hourly and states\_daily views.
- **Database schema**: Leave empty to use whatever the connection already points at (normally public). Set a name and Scribe creates that schema and records into it — its tables, its hypertables, its policies. Only new data goes there: history already written elsewhere is not moved, and Scribe records nothing at all if the schema cannot be reached.
- **Chunk time interval**: TimescaleDB chunk interval (e.g. '7 days'). Affects new chunks only.
- **Compress after**: Compress chunks older than this interval (e.g. '7 days'). Requires TimescaleDB compression.
- **Delete states older than**: Leave empty to keep every state forever (default). Set an interval (e.g. '365 days', '6 months') to have TimescaleDB DELETE state history older than it — permanently, with no undo. Scribe owns this policy: emptying the field removes it.
- **Delete events older than**: Leave empty to keep every event forever (default). Set an interval (e.g. '30 days') to have TimescaleDB DELETE event history older than it — permanently, with no undo. Scribe owns this policy: emptying the field removes it.
- **Enable SSL**: Require an SSL/TLS connection to PostgreSQL
- **SSL root certificate path**: Path to the CA certificate file (e.g. /ssl/ca.crt)
- **SSL client certificate path**: Path to the client certificate file for mTLS
- **SSL client key path**: Path to the client private key file for mTLS
- **Query timeout**: Seconds a scribe.query call may run before the database stops it. 60 by default.
- **Maximum rows per query**: Rows a scribe.query call may return before it is refused. They travel into Home Assistant's memory, so this is what keeps a careless query from taking it down. 20000 by default.

Texts from the code of [jonathan-gtd/scribe](https://github.com/jonathan-gtd/scribe).

## Troubleshooting

- **Diagnostics**: Downloads a diagnostics file to attach to a bug report.
- **System health**: Adds its status to Home Assistant's system information.
- **Repair notices**: Notices it can show in Settings, Repairs:
  Scribe cannot reach its database, Scribe cannot write to its database, Scribe's buffer is full — history is being lost, Scribe is discarding records, TimescaleDB is not installed on Scribe's database, Scribe's TLS configuration is not fully in force, Scribe could not create its tables, Scribe's database predates version 3.0, Scribe cannot reach the schema it was given, Scribe could not build its summaries

## At a glance

- Kind: Marketplace integration
- Number: 81 installs sharing analytics; 67 GitHub stars
- Connection: Works locally
- Upkeep: Updated in the last 6 months
- Needs: Needs the Marketplace (HACS on 2026.10 and older)
- Latest version: v4.5.0, last updated October 26, 2026
- Domain: `scribe`
- Source: <https://github.com/jonathan-gtd/scribe>
- Issues: <https://github.com/jonathan-gtd/scribe/issues>

In Vulpo: Chart card, Apple Watch

Independent directory, made by the developer of Vulpo. Not affiliated with Home Assistant or the Open Home Foundation. [About these numbers](https://vulpo.app/integrations/about)

Last updated 2026-10-27. Source: https://vulpo.app/integrations/marketplace/jonathan-gtd-scribe

---

- HTML version of this page: https://vulpo.app/integrations/marketplace/jonathan-gtd-scribe
- Site index for agents: https://vulpo.app/llms.txt
- Everything in one document: https://vulpo.app/llms-full.txt
- All pages: https://vulpo.app/sitemap.xml
