factcircuit
FactCircuit는 불변 출처와 단계별 검증, 제한된 검색, 재현 가능한 평가를 제공하는 감사 가능한 주장·증거 검증 루프입니다
스프레드시트처럼 데이터베이스를 탐색·검색·편집하고, 자연어로 데이터를 요청하며, 데이터베이스 간 이동이 가능합니다. 무료·오픈소스
Browse, search and edit your database like a spreadsheet, ask for data in plain words, and move data between databases. Free and open source.
데이터Rust · TypeScriptGitHub @parevo온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Your database, finally friendly. Browse and edit PostgreSQL, MySQL, MariaDB, SQLite and SQL Server like a spreadsheet, and ask for data in plain words.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Your database, finally friendly.
Browse, search and edit PostgreSQL, MySQL, MariaDB, SQLite and SQL Server like a spreadsheet, and ask for data in plain words.
Most database tools are built for people who already think in SQL. Kiyi is built for everyone else, and stays out of the way of the people who do.README 전문 보기 ↗Most database tools are built for people who already think in SQL. Kiyi is built for everyone else, and stays out of the way of the people who do.
ALTER statements for your database, in the right order.~/.ssh/config, jump hosts), AWS SSM port forwarding, Kubernetes port-forward and the Cloud SQL Auth Proxy, with every step of the connection test explained. Sign in to RDS with IAM, verify SSL against your own CA (the Amazon RDS bundle is fetched for you), or connect over a Unix socket. Databases running locally or in Docker are found automatically.:parameters that ask for their values), saved table views, hidden/frozen/reordered columns, copy rows as CSV, Markdown, JSON or INSERTs, find and replace across a column.Passwords and API keys live in the system keychain. Your own work (query history, saved queries, table views, open tabs, settings) is kept in Kiyi's folder, so it can be backed up and moves with exported connections; history never leaves the computer. No account, no telemetry.
| Download | 12 MB |
| Launch to window | 0.31 s |
| Memory at idle | 79 MB |
| Open, sort or filter a 1M-row table | ~1 ms |
| Read all 1M rows | 0.77 s on PostgreSQL, 0.68 s on MySQL (faster than psql and mysql themselves) |
Download size of Kiyi 0.2.0 for Apple Silicon; the rest measured with 0.1.0 on an M1 Pro MacBook Pro. Full results and how to reproduce them: docs/benchmarks.md.
Download the latest version for macOS (Apple Silicon or Intel), Windows (64-bit) or Linux (64-bit AppImage or .deb) from the website or the releases page. Kiyi updates itself in the background and asks before restarting.
No database handy? Choose Try the sample database on the welcome screen to explore a small store with customers, products and orders.
The macOS app is signed with a Developer ID and notarized by Apple. The Windows installer isn't code-signed yet: if SmartScreen asks, choose More info → Run anyway. On Linux, passwords are kept in the desktop's Secret Service (GNOME Keyring or KWallet), and both the AppImage and the .deb update themselves.
| Database | Status |
|---|---|
| PostgreSQL | Supported |
| MySQL | Supported |
| MariaDB | Supported |
| SQLite | Supported |
| SQL Server | Supported (2017 and later, Azure SQL) |
New engines plug in through a driver and an entry in crates/kiyi-core/src/catalog.rs; the app itself doesn't change.
Kiyi is a Rust core with a Tauri 2 shell and a React interface.
crates/kiyi-core/ Drivers, database catalog, SQL planners, tunnels, AI, connection store, keychain. No Tauri dependency.
crates/kiyi-devbridge/ The core over HTTP, so the UI can run in a plain browser for screenshots and end-to-end tests.
src-tauri/ Tauri commands (a thin layer over the core) and the updater.
src/ React + React Aria, CSS Modules, CodeMirror 6, Glide Data Grid.
src/styles/tokens.css Every color, spacing value and font.
site/ The website, deployed to GitHub Pages.
Rust (stable), Node.js 24, pnpm, and Docker for the test databases. On Linux, also the Tauri system libraries and libdbus-1-dev (for the keyring).
pnpm install
./dev/setup-ssh-key.sh # local key for the test SSH bastion
docker compose -f dev/docker-compose.yml up -d --wait # PostgreSQL, MySQL and an SSH bastion
pnpm tauri dev
Test connections:
| URL | Notes |
|---|---|
postgres://kiyi:kiyi@localhost:55432/shop | Sample data to play with |
mysql://kiyi:kiyi@localhost:53306/shop | Sample data to play with |
postgres://kiyi:kiyi@localhost:55432/demo | The "Acme Store" used for screenshots |
To try an SSH tunnel, use host 127.0.0.1, port 52222, user and password kiyi, and postgres:5432 as the database host.
SQL Server is optional in the dev setup (it's large and emulated on Apple Silicon):
docker compose -f dev/docker-compose.yml --profile sqlserver up -d --wait
docker compose -f dev/docker-compose.yml exec sqlserver /opt/mssql-tools18/bin/sqlcmd -C -S localhost -U sa -P Kiyi_pass1 -i /seed/sqlserver.sql
KIYI_LIVE_SQLSERVER=1 cargo test -p kiyi-core --test sqlserver_live
Connect in the app with sqlserver://sa:Kiyi_pass1@localhost:51433/kiyi_test. SQL Server has no read-only session setting, so Kiyi enforces read-only connections itself.
cargo test --workspace # unit tests
KIYI_LIVE=1 cargo test -p kiyi-core --test live --test objects # drivers, tunnels, objects, import/export against the Docker databases
pnpm typecheck
pnpm test # interface logic (Vitest)
cargo audit # known vulnerabilities; accepted ones are explained in .cargo/audit.toml
Live tests use a separate kiyi_test database, so editing shop in the app never breaks them.
kiyi-devbridge serves the core over HTTP and the UI talks to it instead of Tauri (src/dev/bridge.ts). Useful for screenshots and scripted flows with Playwright:
pnpm dev # Vite on :1420
cargo run -p kiyi-devbridge # bridge on :1421
node dev/shoot.mjs /tmp/shots dark # screenshots of the main screens
node dev/flows.mjs /tmp/flows # end-to-end flows against the real databases
node dev/marketing.mjs site/assets/shots # website screenshots, dark and light
To try the live AI test (it spends a few tokens): XAI_API_KEY=… KIYI_LIVE=1 cargo test -p kiyi-core --test ai_live -- --nocapture.
Providers are managed in Settings → AI. Kiyi speaks the Anthropic Messages API and any OpenAI-compatible /chat/completions endpoint. Keys are stored in the keychain; without one, the provider's environment variable is used (for example ANTHROPIC_API_KEY). Whatever the model returns is validated as a single read-only condition before it runs.
Kiyi writes a log to ~/Library/Logs/com.parevo.kiyi/kiyi.log on macOS and %LOCALAPPDATA%\com.parevo.kiyi\logs\kiyi.log on Windows. Settings → About & updates → Report a problem opens a GitHub issue with the version, platform and recent log filled in, for you to read before sending; Copy diagnostics copies the same to paste anywhere. SQL text, passwords and keys are never logged. See also CONTRIBUTING.md and SECURITY.md.
main builds a beta (vX.Y.Z-beta.N) for users on the beta channel.vX.Y.Z tag builds a stable release for everyone.git tag v0.2.0 && git push origin v0.2.0
The app checks for updates at launch and every four hours, downloads in the background, and installs when the user chooses to restart.
Required repository secrets: TAURI_SIGNING_PRIVATE_KEY and TAURI_SIGNING_PRIVATE_KEY_PASSWORD for update signatures. macOS builds are signed and notarized when APPLE_CERTIFICATE, APPLE_CERTIFICATE_PASSWORD and APPLE_SIGNING_IDENTITY are set, together with an App Store Connect API key (APPLE_API_KEY, APPLE_API_ISSUER, APPLE_API_PRIVATE_KEY) or an Apple ID (APPLE_ID, APPLE_PASSWORD, APPLE_TEAM_ID). Without them the app is ad-hoc signed.
MIT © Parevo