ShinyDocDbMyAdmin.Tui
A terminal front end for Shiny.DocumentDb stores - browse and edit documents, run SQL, manage JSON indexes, diff history, inspect geometry, blobs and vectors. Same admin layer and same connection profiles as the web front end, without a browser or a container.
Install
No framework information available.
README
ShinyDocDbMyAdmin.Tui
A terminal front end for Shiny.DocumentDb stores. Connect to a database, browse the documents in it, edit them, query it with DocumentDb's own filter grammar or raw SQL, read query plans and manage indexes, search full text, inspect geometry, blobs, history and vectors, ask an AI assistant about the data, and move data in and out. No user management, no server administration - just the documents.
dotnet tool install -g ShinyDocDbMyAdmin.Tui
shinydocdb
About 48MB packed and 108MB unpacked. Most of that is the native SQLite/SQLCipher binaries for every
platform: a dotnet tool package is not platform-specific, so it carries every platform's binaries or none.
Full documentation, screenshots and the keyboard map: https://shinylib.net/documentdb/admin/terminal
Works against every relational DocumentDb backend - SQLite, SQLCipher, PostgreSQL, SQL Server,
MySQL, MariaDB, Oracle 23ai+, CockroachDB. The document stores (MongoDB, Cosmos DB, LiteDB, IndexedDB, …)
are deliberately out of scope: this tool works against the shared Id / TypeName / Data / CreatedAt / UpdatedAt envelope over ADO.NET, which only the relational providers expose.
It is the same tool as the web one
ShinyDocDbMyAdmin is the browser front end and ships as a container image. Both
sit on ShinyDocDbMyAdmin.Core, which holds the connection profiles, the document/schema/index/sidecar
services and import/export - so this is not a reimplementation that agrees on a file format. It is the same
ProfileStore over the same ~/.shinydocdbmyadmin/admin.db, the same SecretProtector, the same
ConnectionTransferService. A connection saved in one is a connection the other opens.
tests/ShinyDocDbMyAdmin.Tui.Tests exports a bundle through this app's services and imports it through the
web app's, and back, because that round trip is the claim worth testing.
Secrets do not cross machines. The protector's key is per instance, so a containerised web app and a tool on the host cannot read each other's stored credentials even pointed at the same volume. The passphrase-encrypted bundle is the bridge, which is what it was designed for.
Command line
shinydocdb [options] open the connection list
shinydocdb --profile <name|id> open straight into a connection
shinydocdb export <file> [--secrets] write the connection bundle and exit
shinydocdb import <file> read a connection bundle and exit
shinydocdb help | version
export and import never draw anything - they are the scriptable half of the transfer screen.
Layout
src/ShinyDocDbMyAdmin.Tui/
Cli/ argument parsing and the two headless verbs
Shell/ the frame: menu, explorer, screen stack, status line, dialogs
Screens/ one per page of the web front end
Panels/ one per workspace tab, plus the two query consoles
Widgets/ the pieces with no terminal equivalent - the JSON editor, the map, the grids
Built on XenoAtom.Terminal.UI.
Three things are worth knowing before changing this:
Every state assignment happens on the render thread. Database work runs on the pool through
AdminShell.RunAsyncand comes back throughPost; assigning to aState<T>from a worker races the renderer.Pendingis a plain counter assigned into a state rather than incremented in it, because the binding layer refuses a read-then-write of the same value inside one tracking context.AdminShell.Buildcomposes;Startbegins work. Keeping them apart is what lets the render tests drive loading deterministically instead of racing a background task.[Bindable]types must be in a namespace. The source generator emitsnamespace <global namespace>otherwise, which does not compile and does not say why.
Running it from a clone
dotnet run --project src/ShinyDocDbMyAdmin.Tui
Changes from Previous Version
Adoption Assessment
Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.
Related Guides & Workflows
Learn how to evaluate, integrate, or audit this package in your .NET project.