I got fed up with the current binary state of DB clients so I built one from scratch for myself.
For the past several years the SQL tooling has been stuck between two bad options:
- On one side, the classic database IDEs — DataGrip, pgAdmin, DbBeaver etc... All are very mature, but also completely indifferent to what you’re actually trying to do. They’ll autocomplete a column name, but they don’t know your intent or schema’s quirks and the query they just autocompleted will do a sequential-scan on a 500-million-row table..
- On the other side, the new wave of “chat with your database” tools with “AI” bolted onto the core of every single feature and in every panel (chat2DB). Most of these are straight unsettling for me because they will cheerfully generate a query and run it straight against your production DB or ship your sensitive data off to OpenAI and Anthropic so it can eyeball am ad hoc query.. Pointing these tools to a prod DB for me feels like handing your car keys to your drunk friend.. It has been shown that LLM’s hallucinate at non trivial rates and that is the main reason why narrow vertical "agnets" became so popular in the first place.
Long story short: I built an Postgres client that I designed based on 3 principles:
1. Tight SQL loop: The (optional) Agnet before suggesting a stupid query will actually run an EXPLAIN on it look at the query plan and iterate until it is fitted to you case.
2. The Agent is Read only. It connects to read only connection pool so it can accidentally drop your tables.
3. You choose when you data is shipped to Antropic/OpenAI. The default editor mode prohibits the models to look into your data. You can opt in if you want a plain text answer to your query isntead of an sql.
Anyways, if you are Interested here is the github link. It's called Surus, it's open source and comes with couple of quality of life features.
If you experienced a similar frustrations would love to hear what tools you ended up using..
geometrein•1h ago
- On one side, the classic database IDEs — DataGrip, pgAdmin, DbBeaver etc... All are very mature, but also completely indifferent to what you’re actually trying to do. They’ll autocomplete a column name, but they don’t know your intent or schema’s quirks and the query they just autocompleted will do a sequential-scan on a 500-million-row table..
- On the other side, the new wave of “chat with your database” tools with “AI” bolted onto the core of every single feature and in every panel (chat2DB). Most of these are straight unsettling for me because they will cheerfully generate a query and run it straight against your production DB or ship your sensitive data off to OpenAI and Anthropic so it can eyeball am ad hoc query.. Pointing these tools to a prod DB for me feels like handing your car keys to your drunk friend.. It has been shown that LLM’s hallucinate at non trivial rates and that is the main reason why narrow vertical "agnets" became so popular in the first place.
Long story short: I built an Postgres client that I designed based on 3 principles:
1. Tight SQL loop: The (optional) Agnet before suggesting a stupid query will actually run an EXPLAIN on it look at the query plan and iterate until it is fitted to you case.
2. The Agent is Read only. It connects to read only connection pool so it can accidentally drop your tables.
3. You choose when you data is shipped to Antropic/OpenAI. The default editor mode prohibits the models to look into your data. You can opt in if you want a plain text answer to your query isntead of an sql.
Anyways, if you are Interested here is the github link. It's called Surus, it's open source and comes with couple of quality of life features.
If you experienced a similar frustrations would love to hear what tools you ended up using..
Cheers!