diff --git a/databases/index.mdx b/databases/index.mdx
index e16e380..6916e3f 100644
--- a/databases/index.mdx
+++ b/databases/index.mdx
@@ -1,11 +1,11 @@
---
title: Supported Databases
-description: All 41 engines TablePro connects to, their default ports, and which ones need a plugin
+description: All 42 engines TablePro connects to, their default ports, and which ones need a plugin
---
import DriverCounts from "/snippets/driver-counts.mdx";
-Forty-one engines, and every one of them is free to use. What differs between them is where the
+Forty-two engines, and every one of them is free to use. What differs between them is where the
driver comes from, not what the license covers.
@@ -31,6 +31,7 @@ driver comes from, not what the license covers.
| [etcd](/databases/etcd) | 2379 | Plugin |
| [Firebase Realtime Database](/databases/firebase) | API-based | Plugin |
| [Firestore](/databases/firebase) | API-based | Plugin |
+| [KingbaseES](/databases/kingbasees) | 54321 | Plugin |
| [libSQL](/databases/libsql) | API-based | Plugin |
| [Kafka](/databases/kafka) | 9092 | Plugin |
| [MariaDB](/databases/mariadb) | 3306 | Built-in |
diff --git a/databases/kingbasees.mdx b/databases/kingbasees.mdx
new file mode 100644
index 0000000..52a8b05
--- /dev/null
+++ b/databases/kingbasees.mdx
@@ -0,0 +1,86 @@
+---
+title: KingbaseES
+description: Connect to a KingbaseES server with the downloadable libpq driver
+---
+
+import RegistryPlugin from "/snippets/registry-plugin.mdx";
+
+Choose **KingbaseES** when creating the connection. Enter the database and role supplied by your administrator; neither field is pre-filled.
+
+
+
+The plugin is named **KingbaseES Driver**. It supports KingbaseES V9 and was tested against V9R1C10 in PostgreSQL and Oracle compatibility modes.
+
+## Quick setup
+
+
+
+ Create a connection, choose **KingbaseES**, and install its driver when offered.
+
+
+ Set **Host**, **Port**, **Username**, **Password**, and **Database** to the values for your server. The default port is `54321`.
+
+
+ Click **Save & Connect**.
+
+
+
+## Connection settings
+
+| Field | Default | Notes |
+|---|---|---|
+| **Host** | `localhost` | Enter the server hostname or IP address |
+| **Port** | `54321` | Use the port configured on your server |
+| **Username** | Empty | Enter your database role |
+| **Database** | Empty | Required; enter the database to open |
+| **SSL Mode** | **Preferred** | Tries TLS first, then plain text if the server refuses TLS |
+| **Connection Options** | Empty | Additional libpq connection options |
+
+## Connection URL
+
+```text
+kingbase://user:password@host:54321/database
+kingbase8://user:password@host:54321/database
+```
+
+See [Connection URL Reference](/connections/urls) for opening a connection URL.
+
+## Authentication
+
+Enter the password for your database role, or select **Use ~/.pgpass** to read it from a password file. A matching entry uses the server's port:
+
+```text
+host:54321:database:user:password
+```
+
+Set the file permissions with `chmod 0600 ~/.pgpass`. See [Password file](/databases/postgresql#password-file).
+
+## Cross-database tabs
+
+Each database opened from the connections strip keeps a separate connection. A tab runs on the connection for its bound database; transactions and temporary tables belong to that connection. See [Cross-database tabs](/databases/postgresql#cross-database-tabs).
+
+## Compatibility modes
+
+The driver reads the server's `database_mode` setting when it connects. PostgreSQL (`pg`) and Oracle (`oracle`) modes are supported. A server in MySQL or SQL Server mode is refused with an error, and a server without the setting connects in PostgreSQL mode.
+
+In Oracle mode, anonymous blocks, procedure bodies, `q'[...]'` strings and `/` lines stay whole when you run a statement or a script, import a `.sql` file, or run startup commands. Dollar-quoted strings work in both modes.
+
+## Copying and comparing
+
+Copy tables between KingbaseES in PostgreSQL mode and PostgreSQL, or generate a Compare & Sync structure script between them. A server in Oracle mode spells its column types its own way, so it copies and syncs structure only with another Oracle-mode server. See [Copy objects](/features/copy-objects) and [Compare & Sync](/features/compare-sync).
+
+## SSL/TLS
+
+The default **Preferred** mode falls back to plain text when the server refuses TLS. Select **Verify CA** to validate the server certificate. See [SSL/TLS](/connections/ssl) for the certificate settings.
+
+## Limitations
+
+- In the tested Oracle configuration, empty strings and empty `bytea` values become SQL NULL. They do not remain distinct values; use a separate flag column if that distinction matters.
+- Oracle-mode `DATE` values include a time component. Read and write the time as part of the value.
+- The tested V9R1C10 server rejects `NUMERIC 'Infinity'`. Use a finite numeric value or a separate status column.
+- A transaction or temporary table in one database is not shared with another database's tab. Keep related statements on the same database connection.
+
+## Related
+
+- [Connections](/connections)
+- [Plugins](/features/plugins)
diff --git a/docs.json b/docs.json
index 405d3d1..116b9d1 100644
--- a/docs.json
+++ b/docs.json
@@ -255,6 +255,7 @@
"databases/bigquery",
"databases/bigtable",
"databases/kafka",
+ "databases/kingbasees",
"databases/libsql",
"databases/mariadb",
"databases/mssql",
diff --git a/index.mdx b/index.mdx
index 0684879..c64e11f 100644
--- a/index.mdx
+++ b/index.mdx
@@ -1,6 +1,6 @@
---
title: Introduction
-description: Native macOS database client for MySQL, PostgreSQL, SQLite, MongoDB, Redis, and 36 more
+description: Native macOS database client for MySQL, PostgreSQL, SQLite, MongoDB, Redis, and 37 more
---
import DriverCounts from "/snippets/driver-counts.mdx";
diff --git a/snippets/driver-counts.mdx b/snippets/driver-counts.mdx
index 73868cb..44a8722 100644
--- a/snippets/driver-counts.mdx
+++ b/snippets/driver-counts.mdx
@@ -1,3 +1,3 @@
-Five drivers ship inside the app and cover twelve databases. Twenty-five registry plugins cover the
-other twenty-nine and install on the first connection that needs one. See
+Five drivers ship inside the app and cover twelve databases. Twenty-six registry plugins cover the
+other thirty and install on the first connection that needs one. See
[Plugins](/features/plugins).