db-studio 1.18.0 → 1.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/README.md +88 -49
  2. package/dist/index.js +126 -90
  3. package/dist/index.js.map +1 -1
  4. package/dist/web-dist/assets/_pathlessLayout-2KoDg70R.js +2 -0
  5. package/dist/web-dist/assets/_pathlessLayout-B9IWhcuu.js +1 -0
  6. package/dist/web-dist/assets/_queryId-Cj11TVS_.js +1 -0
  7. package/dist/web-dist/assets/_table-79-Gj3DB.js +1 -0
  8. package/dist/web-dist/assets/_table-DqwiXW8K.js +1 -0
  9. package/dist/web-dist/assets/_table-wnnWEyoW.js +1 -0
  10. package/dist/web-dist/assets/{abap-Ds2wIDQc.js → abap-CgG5wVNY.js} +1 -1
  11. package/dist/web-dist/assets/{apex-DfqBN11z.js → apex-j_kA3haI.js} +1 -1
  12. package/dist/web-dist/assets/{azcli-COqL1c-b.js → azcli-0Mg388XK.js} +1 -1
  13. package/dist/web-dist/assets/badge-B60VPytI.js +1 -0
  14. package/dist/web-dist/assets/{bat-Nrlrgwbn.js → bat-DASZ2LNG.js} +1 -1
  15. package/dist/web-dist/assets/{bicep-DMqb4xTm.js → bicep-CL7heJBl.js} +1 -1
  16. package/dist/web-dist/assets/browser-CeHHi7P0.js +1 -0
  17. package/dist/web-dist/assets/{bundle-mjs-DfrVkH8G.js → bundle-mjs-CYj7goeC.js} +1 -1
  18. package/dist/web-dist/assets/{cameligo-DQX1RguE.js → cameligo-BsOg99gn.js} +1 -1
  19. package/dist/web-dist/assets/{chat-sidebar-p9xpAAXQ.js → chat-sidebar-DwFbnKXs.js} +9 -9
  20. package/dist/web-dist/assets/{clojure-CmnlCds-.js → clojure-CxO9AHQp.js} +1 -1
  21. package/dist/web-dist/assets/{code-editor-DsRAUGQh.js → code-editor-DOm0leY6.js} +4 -4
  22. package/dist/web-dist/assets/{coffee-CgcM3HWm.js → coffee-BAckyzYj.js} +1 -1
  23. package/dist/web-dist/assets/connect-BpkSEPls.js +1 -0
  24. package/dist/web-dist/assets/constants-BgZGgQU-.js +12 -0
  25. package/dist/web-dist/assets/{cpp-BnqpxZdA.js → cpp-BunR1P49.js} +1 -1
  26. package/dist/web-dist/assets/{csharp-B8V_ECLX.js → csharp-BaO8aYxy.js} +1 -1
  27. package/dist/web-dist/assets/{csp-Dzh7GjET.js → csp-BLTGBZQe.js} +1 -1
  28. package/dist/web-dist/assets/{css-BY0zxVqM.js → css-CF98ZCAA.js} +1 -1
  29. package/dist/web-dist/assets/{cssMode-D_jEABO9.js → cssMode-C5TixMh2.js} +1 -1
  30. package/dist/web-dist/assets/{cypher-D9AVJPko.js → cypher-D4JtjRxz.js} +1 -1
  31. package/dist/web-dist/assets/{dart-vuJN5abD.js → dart-DQ9U8EMP.js} +1 -1
  32. package/dist/web-dist/assets/database.store-CzI49QG8.js +57 -0
  33. package/dist/web-dist/assets/{dist-DmSgBrHs.js → dist-CxVc5ukz.js} +1 -1
  34. package/dist/web-dist/assets/dist-DFHV2Ot7.js +2 -0
  35. package/dist/web-dist/assets/{dockerfile-Du-akT44.js → dockerfile-BrZMt6pR.js} +1 -1
  36. package/dist/web-dist/assets/{ecl-C3XWQlLZ.js → ecl-BJCwcmJ1.js} +1 -1
  37. package/dist/web-dist/assets/{editor.api-VeMVvGYa.js → editor.api-C4TX16wd.js} +1 -1
  38. package/dist/web-dist/assets/{elixir-BzsCBGJ0.js → elixir-DHsCS2On.js} +1 -1
  39. package/dist/web-dist/assets/{esm-D_bQ4AdP.js → esm-B9MwAMFl.js} +1 -1
  40. package/dist/web-dist/assets/{flow9-z5gBTD0L.js → flow9-DGeMNykd.js} +1 -1
  41. package/dist/web-dist/assets/format-cell-value-B8ovgCmo.js +1 -0
  42. package/dist/web-dist/assets/{freemarker2-B9XmkS8x.js → freemarker2-CaCcWbsU.js} +2 -2
  43. package/dist/web-dist/assets/{fsharp-CMq6tChx.js → fsharp-4YY9n89U.js} +1 -1
  44. package/dist/web-dist/assets/{go-ClPsEbRK.js → go-DyNUrTHL.js} +1 -1
  45. package/dist/web-dist/assets/{graphql-7BvkEJ5O.js → graphql-D9bqCG0h.js} +1 -1
  46. package/dist/web-dist/assets/{handlebars-sf8CVwlq.js → handlebars-p4ZPMA_H.js} +1 -1
  47. package/dist/web-dist/assets/{hcl-DN6aCTHV.js → hcl-CFjL6tj1.js} +1 -1
  48. package/dist/web-dist/assets/highlighted-body-OFNGDK62-CGCmu3bn.js +1 -0
  49. package/dist/web-dist/assets/{html-DI5TL_8H.js → html-Nr8D0sMZ.js} +1 -1
  50. package/dist/web-dist/assets/{htmlMode-D_4DT2Lu.js → htmlMode-BM6myHlS.js} +1 -1
  51. package/dist/web-dist/assets/icons-CjWX45lj.js +1 -0
  52. package/dist/web-dist/assets/index-CSMKcupk.js +34 -0
  53. package/dist/web-dist/assets/index-DFMk_Cii.css +2 -0
  54. package/dist/web-dist/assets/indexes-B64ZI_Wn.js +1 -0
  55. package/dist/web-dist/assets/{ini-Ba74TRs3.js → ini-BDn4k5vX.js} +1 -1
  56. package/dist/web-dist/assets/{java-B1OFDleH.js → java-D-YO2VWR.js} +1 -1
  57. package/dist/web-dist/assets/{javascript-Cf3sZaZX.js → javascript-DXRDGeAZ.js} +1 -1
  58. package/dist/web-dist/assets/json-editor-S2xJY2Kx.js +1 -0
  59. package/dist/web-dist/assets/{jsonMode-CQjwhzT5.js → jsonMode-rO2Ftta6.js} +4 -4
  60. package/dist/web-dist/assets/{julia-CMywvhYA.js → julia-B-8U-d1l.js} +1 -1
  61. package/dist/web-dist/assets/keys-BPprzJmP.js +1 -0
  62. package/dist/web-dist/assets/{kotlin-BD6_sIY9.js → kotlin-CmXAhpPa.js} +1 -1
  63. package/dist/web-dist/assets/label-CVNOUqUm.js +1 -0
  64. package/dist/web-dist/assets/{less-BxdK-Aa1.js → less-SOSfAhzX.js} +1 -1
  65. package/dist/web-dist/assets/{lexon-DCaYyeqi.js → lexon-De12xV5T.js} +1 -1
  66. package/dist/web-dist/assets/{liquid-D7tk2apZ.js → liquid-DFx6O1UA.js} +1 -1
  67. package/dist/web-dist/assets/logs-CRFlPvlu.js +1 -0
  68. package/dist/web-dist/assets/{lspLanguageFeatures-DHxnBjVJ.js → lspLanguageFeatures-fx3r8Nlp.js} +3 -3
  69. package/dist/web-dist/assets/{lua-DYwtBF6d.js → lua-BZS2kSaZ.js} +1 -1
  70. package/dist/web-dist/assets/{m3-CogUFTfR.js → m3-BDc8kTWm.js} +1 -1
  71. package/dist/web-dist/assets/{markdown-COKMRj9K.js → markdown-BeZnE8gM.js} +1 -1
  72. package/dist/web-dist/assets/{mdx-H6YCl9d8.js → mdx-BYpfwnmS.js} +1 -1
  73. package/dist/web-dist/assets/mermaid-GHXKKRXX-CF_KGDPe.js +1 -0
  74. package/dist/web-dist/assets/{middleware-CEqbkwLH.js → middleware-DNv5JLGa.js} +1 -1
  75. package/dist/web-dist/assets/{mips-BDOMMsh0.js → mips-CNrGtpRe.js} +1 -1
  76. package/dist/web-dist/assets/{module-CYndhtxW.js → module-CDi4rXzC.js} +1 -1
  77. package/dist/web-dist/assets/{monaco-theme-CyGd7xOU.js → monaco-theme-BqD8Tii6.js} +4 -4
  78. package/dist/web-dist/assets/{msdax-Bt2yooL5.js → msdax-CKWZS4Cj.js} +1 -1
  79. package/dist/web-dist/assets/{mysql-Bs8-d6RT.js → mysql-BZr3Z3DP.js} +1 -1
  80. package/dist/web-dist/assets/{objective-c-DZGYv99U.js → objective-c-hKzp1cvd.js} +1 -1
  81. package/dist/web-dist/assets/{pascal-FvUHIAld.js → pascal-BEkAd_lG.js} +1 -1
  82. package/dist/web-dist/assets/{pascaligo-DEr9uXJO.js → pascaligo-DZTnedDs.js} +1 -1
  83. package/dist/web-dist/assets/{perl-DfX9jvgM.js → perl-BnkE5QAU.js} +1 -1
  84. package/dist/web-dist/assets/{personal-preferences.store-BIcu6qr5.js → personal-preferences.store-BLvzSXGN.js} +1 -1
  85. package/dist/web-dist/assets/{pgsql-B12f-wRt.js → pgsql-DG7pXIvN.js} +1 -1
  86. package/dist/web-dist/assets/{php-MynGtmh0.js → php-8QVKEp8Q.js} +1 -1
  87. package/dist/web-dist/assets/{pla-BSfIEgVT.js → pla-BWA8UBJB.js} +1 -1
  88. package/dist/web-dist/assets/{postiats-wriGJNMc.js → postiats-DqXXSDbr.js} +1 -1
  89. package/dist/web-dist/assets/{powerquery-qTNF5irm.js → powerquery-BhShmvHk.js} +1 -1
  90. package/dist/web-dist/assets/{powershell-Cr0AiP2J.js → powershell-C73oG-kA.js} +1 -1
  91. package/dist/web-dist/assets/{preload-helper-DICoZAvL.js → preload-helper-B_WR4Z6T.js} +1 -1
  92. package/dist/web-dist/assets/{protobuf-B5pCjOfx.js → protobuf-uezV85qf.js} +1 -1
  93. package/dist/web-dist/assets/{pug-BnGzsuEw.js → pug-DKgkwPxK.js} +1 -1
  94. package/dist/web-dist/assets/{python-Bd-J5HMt.js → python-CtKtLi7e.js} +1 -1
  95. package/dist/web-dist/assets/{qsharp-C-Z8Szjm.js → qsharp-QwebvYs2.js} +1 -1
  96. package/dist/web-dist/assets/queries.store-BY1UGAw9.js +1 -0
  97. package/dist/web-dist/assets/query-runner-YYCt8TAF.js +17 -0
  98. package/dist/web-dist/assets/{r-lFEgLDol.js → r-CMjDtWZm.js} +1 -1
  99. package/dist/web-dist/assets/{radix-ui-Bp71_UWp.js → radix-ui-deSt0_b9.js} +7 -7
  100. package/dist/web-dist/assets/{razor-BL-2JJuP.js → razor-CuD2w6HS.js} +1 -1
  101. package/dist/web-dist/assets/react-BH8Cquhy.js +1 -0
  102. package/dist/web-dist/assets/{react-dom-ctQEFzyp.js → react-dom-Cqz4asVS.js} +5 -5
  103. package/dist/web-dist/assets/{redis-CJPiZ1dc.js → redis-BaWLot6X.js} +1 -1
  104. package/dist/web-dist/assets/redis-value-YP_133ws.js +1 -0
  105. package/dist/web-dist/assets/{redshift-D1FKNo6F.js → redshift-Cq-2Y1GO.js} +1 -1
  106. package/dist/web-dist/assets/{restructuredtext-BdtNntNZ.js → restructuredtext-DAg3h1uA.js} +1 -1
  107. package/dist/web-dist/assets/{rolldown-runtime-Ba77kUFP.js → rolldown-runtime-CFc_0XbV.js} +1 -1
  108. package/dist/web-dist/assets/{ruby-C2uUAsPh.js → ruby-gR3Rx_yB.js} +1 -1
  109. package/dist/web-dist/assets/runner-B76n9Lso.js +1 -0
  110. package/dist/web-dist/assets/{rust-B22jVKPi.js → rust-C7v-4s8H.js} +1 -1
  111. package/dist/web-dist/assets/{sb-H5-MsoWu.js → sb-BjQMj6Ck.js} +1 -1
  112. package/dist/web-dist/assets/{scala-JHuRLUuq.js → scala-CDlk2JGU.js} +1 -1
  113. package/dist/web-dist/assets/schema-BtwO4zbG.js +1 -0
  114. package/dist/web-dist/assets/schema-CswsqIrC.js +1 -0
  115. package/dist/web-dist/assets/{scheme-CqKe-_5y.js → scheme-C4uQvWwl.js} +1 -1
  116. package/dist/web-dist/assets/{scss-C9ckl5Lm.js → scss-DR_HbFxm.js} +1 -1
  117. package/dist/web-dist/assets/{select-Cg3fBZqb.js → select-BJvLgK98.js} +1 -1
  118. package/dist/web-dist/assets/{separator-B2Ii4cjw.js → separator-DFU6yRp6.js} +1 -1
  119. package/dist/web-dist/assets/sheet-sidebar-lG9Hd9mf.js +1 -0
  120. package/dist/web-dist/assets/{shell-C9lIrU5P.js → shell-3nbA3ckv.js} +1 -1
  121. package/dist/web-dist/assets/{solidity-BdsCByFb.js → solidity-B22K_RR3.js} +1 -1
  122. package/dist/web-dist/assets/{sophia-BiYQOR15.js → sophia-Szu0pGax.js} +1 -1
  123. package/dist/web-dist/assets/{sparql-CZhOhni4.js → sparql--gEADTS8.js} +1 -1
  124. package/dist/web-dist/assets/spinner-Dihgug3b.js +1 -0
  125. package/dist/web-dist/assets/{sql-DGoEI4nz.js → sql-Bzxx_ZMh.js} +1 -1
  126. package/dist/web-dist/assets/{st-DUBBkXkg.js → st-feo0KJe0.js} +1 -1
  127. package/dist/web-dist/assets/{swift-D_36y0eN.js → swift-cvOE23v2.js} +1 -1
  128. package/dist/web-dist/assets/{systemverilog-BAtlR_WK.js → systemverilog-BvUnJocc.js} +1 -1
  129. package/dist/web-dist/assets/table-BeBhifQ8.js +1 -0
  130. package/dist/web-dist/assets/tables-BPDra69x.js +12 -0
  131. package/dist/web-dist/assets/{tanstack-HxB2LyLp.js → tanstack-BGvcrEX1.js} +4 -4
  132. package/dist/web-dist/assets/{tcl-D05MO8B_.js → tcl-CHfkQ04m.js} +1 -1
  133. package/dist/web-dist/assets/tooltip-Hxe7NIhG.js +1 -0
  134. package/dist/web-dist/assets/{tsMode-4FmdP9_o.js → tsMode-BnlkAORX.js} +1 -1
  135. package/dist/web-dist/assets/{twig-CPq3SV5E.js → twig-aSRp1yim.js} +1 -1
  136. package/dist/web-dist/assets/{typescript-CEcdsK9n.js → typescript-BkyDopbB.js} +1 -1
  137. package/dist/web-dist/assets/{typespec-I6aAHcEc.js → typespec-CzVXGIfQ.js} +1 -1
  138. package/dist/web-dist/assets/use-database-engine-B9THCU8i.js +1 -0
  139. package/dist/web-dist/assets/use-theme-C5b04JBO.js +1 -0
  140. package/dist/web-dist/assets/{utils-CNXzeC6_.js → utils-CshH-ggy.js} +1 -1
  141. package/dist/web-dist/assets/{vb-C6fWMOt8.js → vb-D2DjuDpT.js} +1 -1
  142. package/dist/web-dist/assets/visualizer-CEPsKhJ9.js +1 -0
  143. package/dist/web-dist/assets/vscode-D3Om2tQ2.js +1 -0
  144. package/dist/web-dist/assets/{wgsl-CsswhpkD.js → wgsl-oQCq0OjX.js} +1 -1
  145. package/dist/web-dist/assets/workers-3R2slzS3.js +1 -0
  146. package/dist/web-dist/assets/{xml-Clh3WxEv.js → xml-nigv0Hak.js} +1 -1
  147. package/dist/web-dist/assets/{yaml--Kwp2ruw.js → yaml-DMxBC2Lp.js} +1 -1
  148. package/dist/web-dist/index.html +31 -22
  149. package/package.json +5 -3
  150. package/dist/web-dist/assets/_pathlessLayout-D83hYFIC.js +0 -1
  151. package/dist/web-dist/assets/_pathlessLayout-DYRsUfs6.js +0 -2
  152. package/dist/web-dist/assets/_queryId-DmyRcSX-.js +0 -1
  153. package/dist/web-dist/assets/_table-CXzhHR9S.js +0 -1
  154. package/dist/web-dist/assets/_table-Cwy7lxKk.js +0 -1
  155. package/dist/web-dist/assets/_table-DaqO5XGq.js +0 -1
  156. package/dist/web-dist/assets/badge-Ckwkbv_3.js +0 -1
  157. package/dist/web-dist/assets/browser-dcbfhXDu.js +0 -1
  158. package/dist/web-dist/assets/database.store-C0jTx_DA.js +0 -57
  159. package/dist/web-dist/assets/highlighted-body-OFNGDK62-BU0nMuYA.js +0 -1
  160. package/dist/web-dist/assets/icons-BEkcNqUd.js +0 -1
  161. package/dist/web-dist/assets/index-CK2sj4Xy.css +0 -2
  162. package/dist/web-dist/assets/index-b6Apx1z7.js +0 -39
  163. package/dist/web-dist/assets/indexes-Cv0o_HTj.js +0 -1
  164. package/dist/web-dist/assets/json-editor-C9dFqjTV.js +0 -1
  165. package/dist/web-dist/assets/keys-o03XLuW4.js +0 -1
  166. package/dist/web-dist/assets/logs-Ncb6EFEi.js +0 -1
  167. package/dist/web-dist/assets/mermaid-GHXKKRXX-D3S70ynC.js +0 -1
  168. package/dist/web-dist/assets/queries.store-BbUkkWy1.js +0 -1
  169. package/dist/web-dist/assets/query-runner-DBIufzsZ.js +0 -17
  170. package/dist/web-dist/assets/react-BziCK5DU.js +0 -1
  171. package/dist/web-dist/assets/redis-value-rbj0L_ie.js +0 -1
  172. package/dist/web-dist/assets/runner-WhyDqbco.js +0 -1
  173. package/dist/web-dist/assets/schema-DdnQO20v.js +0 -1
  174. package/dist/web-dist/assets/sheet-sidebar-D8BG4Pf9.js +0 -1
  175. package/dist/web-dist/assets/spinner-gvrX8mkL.js +0 -1
  176. package/dist/web-dist/assets/table-Gq1Nd4WJ.js +0 -1
  177. package/dist/web-dist/assets/tooltip-CIAbgIn7.js +0 -12
  178. package/dist/web-dist/assets/visualizer-Cxu0_nai.js +0 -1
  179. package/dist/web-dist/assets/workers-CH8V5wKq.js +0 -1
package/README.md CHANGED
@@ -1,52 +1,39 @@
1
1
  # db-studio
2
2
 
3
- A modern, universal (pgAdmin alternative) database management studio for any database.
4
-
5
- <div align="center">
6
- <a href="https://github.com/husamql3/db-studio/stargazers">
7
- <img alt="GitHub Repo stars" src="https://img.shields.io/github/stars/husamql3/db-studio">
8
- </a>
9
- <a href="https://www.npmjs.com/package/db-studio">
10
- <img src="https://img.shields.io/npm/v/db-studio?style=flat-rounded" />
11
- </a>
12
- <a href="https://www.npmjs.com/package/db-studio">
13
- <img src="https://img.shields.io/npm/dm/db-studio?style=flat-rounded" />
14
- </a>
15
- <a href="https://github.com/husamql3/db-studio/blob/main/LICENSE">
16
- <img alt="License" src="https://img.shields.io/github/license/husamql3/db-studio">
17
- </a>
18
- <a href="https://deepwiki.com/husamql3/db-studio">
19
- <img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki">
20
- </a>
21
- </div>
22
-
23
- <br />
24
-
25
- <img src="https://dbstudio.sh/og-image.png" alt="db-studio screenshot" width="1000" />
26
-
27
- ## Getting Started
28
-
29
- Run db-studio without installing it globally:
3
+ <p align="center">
4
+ <img src="https://raw.githubusercontent.com/husamql3/db-studio/main/assets/icon.png" alt="db-studio icon" width="128" height="128">
5
+ </p>
30
6
 
31
- ```bash
32
- npx db-studio
33
- ```
7
+ <p align="center">
8
+ <a href="https://www.npmjs.com/package/db-studio"><img src="https://img.shields.io/npm/v/db-studio" alt="npm version"></a>
9
+ <a href="https://www.npmjs.com/package/db-studio"><img src="https://img.shields.io/npm/dm/db-studio" alt="npm downloads"></a>
10
+ <a href="https://github.com/husamql3/db-studio/stargazers"><img src="https://img.shields.io/github/stars/husamql3/db-studio" alt="GitHub stars"></a>
11
+ <a href="https://github.com/husamql3/db-studio/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-Apache_2.0-blue.svg" alt="License: Apache 2.0"></a>
12
+ <a href="https://deepwiki.com/husamql3/db-studio"><img src="https://deepwiki.com/badge.svg" alt="Ask DeepWiki"></a>
13
+ </p>
34
14
 
35
- db-studio reads your database connection from `DATABASE_URL` in a `.env` file.
15
+ <p align="center">
16
+ A modern, universal database studio (the pgAdmin alternative) for every database.<br>
17
+ Browse tables, edit records, design schemas, and run queries from one UI, launched with a single <code>npx</code> command.
18
+ </p>
36
19
 
37
- ```env
38
- DATABASE_URL="postgresql://user:password@127.0.0.1:5432/mydb"
39
- ```
20
+ <p align="center">
21
+ <img src="https://raw.githubusercontent.com/husamql3/db-studio/main/assets/screenshot.png" alt="db-studio screenshot" width="800">
22
+ </p>
23
+
24
+ ## Installation
40
25
 
41
- You can also pass the connection string directly:
26
+ No installation required:
42
27
 
43
28
  ```bash
44
- npx db-studio --database-url "postgresql://user:password@127.0.0.1:5432/mydb"
29
+ npx db-studio
45
30
  ```
46
31
 
47
- ## Usage
32
+ db-studio searches the current directory, then its parents, for a `.env` file with `DATABASE_URL`, then the environment. Without one, open the printed address and paste a connection URL on the Connect page.
48
33
 
49
- Add a simple script to your `package.json`:
34
+ Every connection that opens is saved to `~/.dbstudio/connections.json`, readable only by your user, so you can switch between them from the sidebar. The server listens on `127.0.0.1` only; set `HOST` to serve it on your network.
35
+
36
+ **As a project script:**
50
37
 
51
38
  ```json
52
39
  {
@@ -56,14 +43,66 @@ Add a simple script to your `package.json`:
56
43
  }
57
44
  ```
58
45
 
59
- Then run:
60
-
61
- ```bash
62
- npm run db:studio
63
- ```
64
-
65
- Helpful options:
66
-
67
- - `npx db-studio --env .env.local`
68
- - `npx db-studio --port 4000`
69
- - `npx db-studio --status`
46
+ **Flags:**
47
+
48
+ | Flag | Description | Example |
49
+ |------------------------|------------------------------------------------|----------------------------------------------------------|
50
+ | `-e, --env <path>` | Use a specific `.env` file | `npx db-studio --env .env.local` |
51
+ | `-n, --var-name <name>` | Read a different environment variable | `npx db-studio --var-name MY_DB_URL` |
52
+ | `-p, --port <number>` | Change the server port (default: 3333) | `npx db-studio --port 4000` |
53
+ | `-d, --database-url <url>` | Pass the connection string directly | `npx db-studio -d "postgresql://localhost/mydb"` |
54
+ | `--open` | Open db-studio in your browser once it starts | `npx db-studio --open` |
55
+ | `--no-open` | Do not open the browser (the default) | `npx db-studio --no-open` |
56
+ | `-s, --status` | Check the connection only, without the UI | `npx db-studio --status` |
57
+ | `-v, --version` | Show the installed version | `npx db-studio --version` |
58
+ | `-h, --help` | Show all options | `npx db-studio --help` |
59
+
60
+ Full documentation: [dbstudio.sh](https://dbstudio.sh)
61
+
62
+ ## Features
63
+
64
+ ### Databases
65
+ - 🐘 PostgreSQL, CockroachDB, MySQL, MariaDB, TiDB, SQL Server, Oracle
66
+ - 🪶 SQLite, Turso / libSQL, Cloudflare D1, DuckDB
67
+ - 🍃 MongoDB, Redis, ClickHouse
68
+ - 🔌 Connect with a single connection URL
69
+
70
+ ### Table Browser
71
+ - 📋 Spreadsheet-like grid with inline cell editing
72
+ - 🔎 Filter, sort, and paginate rows
73
+ - 🔴 Live mode refreshes the grid and highlights changed rows and cells
74
+ - 🧾 Row details sheet with keyboard navigation between rows
75
+ - 🙈 Hide and reorder columns, saved per table
76
+ - 📤 Export tables as CSV, Excel, or JSON
77
+
78
+ ### Records
79
+ - ➕ Add records with type-aware forms
80
+ - 📥 Bulk insert from CSV, Excel, or JSON
81
+ - 🔗 Pick foreign key values from the referenced table
82
+ - 🗑️ Delete rows, with force delete for dependent rows
83
+
84
+ ### Schema
85
+ - 🏗️ Create and rename tables, with foreign keys
86
+ - ✏️ Add and edit columns
87
+ - 📇 Create and drop indexes
88
+
89
+ ### Query Runner
90
+ - ⌨️ Monaco-powered editor with syntax highlighting and autocomplete
91
+ - ✨ Generate, optimize, or fix queries with AI
92
+
93
+ ### AI Assistant
94
+ - 💬 Ask questions about your data in plain English
95
+ - 🔑 Bring your own key for Gemini, OpenAI, Anthropic, Grok, or OpenRouter
96
+
97
+ ### Everywhere
98
+ - ⌘ Command palette to jump to tables and run actions
99
+ - 🌗 Light and dark themes
100
+ - 📊 Anonymous usage data, off with `DB_STUDIO_TELEMETRY=0`
101
+
102
+ ## Contributing
103
+
104
+ See [CONTRIBUTING.md](https://github.com/husamql3/db-studio/blob/main/CONTRIBUTING.md) for development setup. Check the [roadmap](https://dbstudio.sh/roadmap) and [changelog](https://dbstudio.sh/changelog) for what's planned and what shipped.
105
+
106
+ ## License
107
+
108
+ Apache License 2.0 - see [LICENSE](https://github.com/husamql3/db-studio/blob/main/LICENSE).