This is a passion project from myself and a friend.
Been looking for a slick and easy to use SQL client on Linux for a while (I wanted basically Sequel Pro, on Linux, for PSQL). Couldn't find what I wanted, so we made one ourselves.
It's built on Electron using Vue.js - I know HN opinions on electron apps, but I've been surprised on how snappy the app is.
It's fully open source (MIT), cross-platform (Linux, Mac, and Windows), and we're committed to respecting privacy. Hope someone else finds it useful too.
But neither of these are really "fully baked" options.
EDIT: This may have come across as the typical HN "middlebrow dismissal" so I just want to say, phenomenal work and a heartfelt thanks for being fully FOSS. Tools like this are a really important part of the SWE landscape that could use some more good entrants.
I have a couple of feature requests that nothing else seems to be able to do:
1. Parameterised queries (ideally with an ability to customise the syntax for the placeholders - we use :param for named parameters). All of our production queries are parameterised, and it would be awesome to be able to copy and paste them into this kind of tool, and run them unmodified. Especially as they sometimes use the same parameter in multiple places, so updating them.
2. A full editor control (e.g. Code Mirror, Monaco, or Ace) for editing SQL queries. Specifically I really want multiple cursors for editing queries quickly and efficiently.
I use Rider daily and pay for it, but I found the price tag for DataGrip to be pretty steep considering what I typically use a SQL client for (running ad hoc queries mostly). The competition is not great on MacOS either so I've been using Azure Data Studio and dbBeaver mostly and not really happy with this state of affairs either. Excited to see a fresh new attempt in this space.
hopping on the train here - does anyone know an editor that can do editing of postgres enums? (i know you can't 'edit' an enum in postgres, but i would love a GUI that would 'allow' this. (i.e. in the background DROP CASCADE the enum, create a new one with the same name and new value, as well as restoring to previous dependencies that the old enum had)
As far as I can tell IntelliJ Ultimate (and therefore most likely DataGrip too) supports both. For parameterized queries you get a prompt that let you fill in values for each parameter when executing them. They're commercial products though.
DataGrip does support multiple cursors, I've never done the parameterized queries but I will have to look into that. Buying the entire Jetbrains suite was one of the best decisions I made when I switched jobs and lost my old license. IDEA/Datagrip save me so much time, when I worked it out I couldn't pay for them fast enough.
There are plenty of opportunities to monetize once there are lots of users.
I think with FOSS it's more important to outline how I'm NOT going to monetize. For us that means never charging for core features, eg having 'CE' vs 'EE', and never doing anything sketch with personal data.
I primarily use TablePlus, but it's lack of support for saved queries is a big downside, this could be great for that use case.
A couple of UX things I've noticed, do with them what you will ;)
- When clicking on a table, the more common expectation for me is for it to open that table in a new tab, or switch to an open tab already using that table. The dropdown with columns is nice, but feels secondary.
- When opening a table, it would be nice to pre-seed with X amount of rows immediately. Commonly I just want to filter or search through the data in some way, and being able to immediately interact with it would be a nice touch.
This is amazing! And SSL option right off the bat too? Well done. Feature request for Postgres: it looks like this version mostly displays tables in the 'public' schema. Would be great if it could display all tables and views in all schemas present in the database
I tested it out with CockroachDB to satisfy my curiosity and it works perfectly, using the PostgreSQL driver. I think adding first-class support would be as easy as making a new driver that's the same as PostgreSQL but with a default port of 26257!
Not that it's a big thing, but seems weird to put the responsibility about you not forgetting something, on the person leaving the feedback, rather than just filing the issue yourself.
Well, it's open source, so he volunteers his time. Maybe the feedback should have been filled to Github in the first place? Certainly he is not lazy if asking to do a favor but probably busy with something else.
Sure, but if time is of such importance here, copy+pasting the feedback into a new issue is faster than replying to the author and ask them to file the issue. Then it might be that they don't because of X, so you have to file it yourself anyways.
In both scenarios, just filling the issue yourself is faster
Oh you just caught me trying to encourage community involvement :-). I don't just want users, I want contributors! At a minimum some issue engagement is very useful.
It seems weird that someone who has spent a lot of their own time (e.g. money) to help a community is being shunned for not taking even more time out of their day for a simple request.
This also disregards software ticket guidelines 101:
- There isn't fully defined steps to reproduce
- Limited details on what the user expected to see
- No details about the users environment
People pour their souls into FOSS projects and regularly get cr*pped on for not acting like Enterprise Support. So let's try to be a little more empathetic to people who contribute freely to the dev community, even if its just a small ask like this.
Well, "shunned" might be a bit too strong, but I don't speak native English. I certainly didn't mean to put down the author in any way, which is why I prefixed it with "Not that it's a big thing", it's just a helpful note regarding how to respond to feedback.
Let's cool it down with trying to start up some heated argument around this, no one is interested in that.
> Well, "shunned" might be a bit too strong, but I don't speak native English.
In native english the tone of the following sentence is considered "not very nice":
> but seems weird to put the responsibility about you not forgetting something
Further...
> it's just a helpful note regarding how to respond to feedback.
And what you responded with is NOT how to respond to feedback to an open source maintainer.
> Let's cool it down with trying to start up some heated argument around this, no one is interested in that.
Nor am I. I'm sorry you feel like you're getting picked on here. This general topic is a huge issue for the future of FOSS contributors. What you responded with is clearly not egregious (e.g. i've seen people say things like "hey I submitted a ticket on GitHub 3 months ago and no response, WTF!?!?"...that is VERY BAD), but every little bit hurts. Don't take offense to it, especially if english is not your native tongue.
If most users had your attitude we would have far fewer open source/free softwares. The author has already spent a significant amount of time making the tool, criticizing him for not spending more time/energy for something that can easily be done by the reporter seems, well, counter-productive.
In most cases, feedback is not worth much, depending on your goal. E.g.: I've made some software that satisfies my requirements. Should I be grateful for feedback that, in essence, requires more free work from me? What's the thinking here?
For these reasons I consider the author's attitude most appropriate, considering he could have said "the software is free, send a patch", or just "works for me, take a walk – I don't owe you anything".
I got pretty excited about trying this out, since I've been using a no longer maintained (and pretty buggy) app called Sequel Pro.
But, Beekeeper kind of seems slow/clunky? I ran a simple query in our prod DB that returned 906 rows x 60 columns – the app completely froze up and I couldn't even scroll down to the next few rows...
Switch to Sequel Pro nightly build. You can install it with homebrew. It’s very stable despite the nightly moniker. I haven’t had a single issue with it and it resolved several issues I was having with the regular release.
Yesterday after using Sequel Pro for years, I decided to give TablePlus a try and have been pleasantly surprised. Sequel Pro seems a bit snappier is some instances like when you run a few dozen (or thousand) queries from the editor, but TablePlus query auto complete is so much better than Sequel Pro, and I really like having to confirm changes rather than them running in real time as I update/create/delete things.
I think wide tables are a performance problem with the table lib were using (tabulator). There may be ways to improve it. Frankly I don't have a 60 wide table to test with.
What are some of the comparisons with MySqlWorkbench? It's the only one I have stuck around using so far, so looking to shop around for a different client to try.
Very well done. Congratulations!
I am fan of Sequel Pro on Mac, and never found something like that for Linux. I use adminer on Linux and willing to try your tool.
Kudos for the effort, however for SQL server it faces the same issues as most other clients.
connecting using an domain\user and password doesn't work which means i can't jump ship.
Is there a reason it works flawlessly on datagrip and other tools like sqlprostudio but apps like tableplus and beekepper can't?
I've used DBeaver in the past, but still felt compelled to make Beekeeper Studio. DBeaver is great for a DBA, but can you imagine giving it to someone learning SQL for the first time?
> - DataGrip: bulky, slow, bugs never get fixed, non-FOSS
Bugs linger indeed and non-FOSS is obvious.
If by bulky, you mean start-up time (or resource usage which I don’t really care about), I agree, same as with all other JetBrains tools.
But slow? Everything is so fast, much faster than SQL Manager Studio or Heidi SQL (which I just tried). Autocompletion for fields, tables, SPs, everything is lightning fast and always more context appropriate than any other solution I tried.
I just checked Azure Data Studio as well and while completion was as quick, it wasn’t as context-appropriate and query results took far longer to display.
Once they publish the docs for how to build plugins, TablePlus is going to be the obvious choice. I can't wait for my database browser to have charting!
They have a few plugins available on GitHub so you can copy and adapt and intuit some of the API but I did not see docs available a few weeks ago when I looked.
I also think TablePlus is the best option by far right now, although sadly not open source - would be great if they'd consider Open Sourcing at least the code base licences have already expired passed for.
This looks like a great contender though. Would be useful to have a few more filter options.
Looks cool. I haven't taken an in-depth look yet, but what I noticed is that when I press CMD+W it closes the whole window, rather than the tab I am in. This will land me in some trouble if I ever decide to use it as my main tool.
Yes that is a problem. The app should be capturing that event to close tabs, but MacOS takes it over for some reason. I'll be doing keyboard shortcuts differently soon, so that will be fixed.
Looks great. Sequel Pro you mentioned is by far the best on Mac, none of the clients on Windows or Linux I tried even come close.
This is great, and badly needed IMHO—specially if one can use a single app for both MySQL and SQL Server (Beaver DB is a usability nightmare).
The name will put off a lot of people. To be honest, if someone in a team said "we should replace all our SQL clients with Beekeeper!" the first reaction would be to laugh at the name—which is not good. "SQL Keeper", "SQL Vault", "Sequalize", or anything like that would make people take the project more seriously.
134 comments
[ 4.0 ms ] story [ 206 ms ] threadThis is a passion project from myself and a friend.
Been looking for a slick and easy to use SQL client on Linux for a while (I wanted basically Sequel Pro, on Linux, for PSQL). Couldn't find what I wanted, so we made one ourselves.
It's built on Electron using Vue.js - I know HN opinions on electron apps, but I've been surprised on how snappy the app is.
It's fully open source (MIT), cross-platform (Linux, Mac, and Windows), and we're committed to respecting privacy. Hope someone else finds it useful too.
Have you seen http://sequeljoe.ohwg.net/ ?
I'm also following https://github.com/ragnar-lodbrok/meow-sql closely, a C++/Qt port of the FOSS-but-Windows-only https://www.heidisql.com/ .
But neither of these are really "fully baked" options.
EDIT: This may have come across as the typical HN "middlebrow dismissal" so I just want to say, phenomenal work and a heartfelt thanks for being fully FOSS. Tools like this are a really important part of the SWE landscape that could use some more good entrants.
Can you add a setting to zoom?
1. Parameterised queries (ideally with an ability to customise the syntax for the placeholders - we use :param for named parameters). All of our production queries are parameterised, and it would be awesome to be able to copy and paste them into this kind of tool, and run them unmodified. Especially as they sometimes use the same parameter in multiple places, so updating them.
2. A full editor control (e.g. Code Mirror, Monaco, or Ace) for editing SQL queries. Specifically I really want multiple cursors for editing queries quickly and efficiently.
I think with FOSS it's more important to outline how I'm NOT going to monetize. For us that means never charging for core features, eg having 'CE' vs 'EE', and never doing anything sketch with personal data.
> never doing anything sketch with personal data.
Does not compute.
I primarily use TablePlus, but it's lack of support for saved queries is a big downside, this could be great for that use case.
A couple of UX things I've noticed, do with them what you will ;)
- When clicking on a table, the more common expectation for me is for it to open that table in a new tab, or switch to an open tab already using that table. The dropdown with columns is nice, but feels secondary.
- When opening a table, it would be nice to pre-seed with X amount of rows immediately. Commonly I just want to filter or search through the data in some way, and being able to immediately interact with it would be a nice touch.
The click interaction is something I'm not sure about. Neither feel totally right. Still thinking about it.
It should fill when you open it. What DB are you using?
I use DataGrip and haven't found anything that was better than that at what it does.
Yours is really neat. Saved queries are great.
* Look into your JSON/JSONB column support. Right now it just returns [object Object].
* I dig the tab interface.
* I REALLY like the summary view when you expand the table on the left.
* Select auto complete wasn't working very well for me even with the table defined and ctrl+space was offering completely problemsome options.
Excited to keep playing with it. Going to test it as a daily driver.
Yeah JSON / JSONB support coming soon (tm).
Auto-complete is a pet peeve. I'm using code-mirror for the editor and it has limitations. Can you screenshot what was not auto-completing?
I find it helps if I first define a table, then the selects auto-complete well:
select foo.<autocompleteworksgreat>
from foo
I tested it out with CockroachDB to satisfy my curiosity and it works perfectly, using the PostgreSQL driver. I think adding first-class support would be as easy as making a new driver that's the same as PostgreSQL but with a default port of 26257!
I tried with Postgres 12 and ran into 2 issues -
- jsonb columns don't seem to render properly... just get a "[object Object]".
- One specific table refused to get list anything, and there was a red "Error" in the center of the listing UI.
In both scenarios, just filling the issue yourself is faster
This also disregards software ticket guidelines 101:
- There isn't fully defined steps to reproduce
- Limited details on what the user expected to see
- No details about the users environment
People pour their souls into FOSS projects and regularly get cr*pped on for not acting like Enterprise Support. So let's try to be a little more empathetic to people who contribute freely to the dev community, even if its just a small ask like this.
Let's cool it down with trying to start up some heated argument around this, no one is interested in that.
In native english the tone of the following sentence is considered "not very nice":
> but seems weird to put the responsibility about you not forgetting something
Further...
> it's just a helpful note regarding how to respond to feedback.
And what you responded with is NOT how to respond to feedback to an open source maintainer.
> Let's cool it down with trying to start up some heated argument around this, no one is interested in that.
Nor am I. I'm sorry you feel like you're getting picked on here. This general topic is a huge issue for the future of FOSS contributors. What you responded with is clearly not egregious (e.g. i've seen people say things like "hey I submitted a ticket on GitHub 3 months ago and no response, WTF!?!?"...that is VERY BAD), but every little bit hurts. Don't take offense to it, especially if english is not your native tongue.
In most cases, feedback is not worth much, depending on your goal. E.g.: I've made some software that satisfies my requirements. Should I be grateful for feedback that, in essence, requires more free work from me? What's the thinking here?
For these reasons I consider the author's attitude most appropriate, considering he could have said "the software is free, send a patch", or just "works for me, take a walk – I don't owe you anything".
But, Beekeeper kind of seems slow/clunky? I ran a simple query in our prod DB that returned 906 rows x 60 columns – the app completely froze up and I couldn't even scroll down to the next few rows...
But still with all those UI bugs I prefer it over any other client.
Can you file an issue so I don't forget?
Is there a reason it works flawlessly on datagrip and other tools like sqlprostudio but apps like tableplus and beekepper can't?
These were compromises I needed in order to ship it (it already took us a year to build).
Quick Suggestions:
* Snowflake, Bigquery, Azure support
* A SQL linter (not easy!)
Thanks for sharing!
Any plan for Query Plan diagram / visualisation ?
In case anyone is curious, here’s what I’ve tried so far:
- DataGrip: bulky, slow, bugs never get fixed, non-FOSS
- Azure Data Studio: great interface, but no MySQL or SQLite support
- phpMyAdmin: clumsy, lacking in features, requires a web server—I’m really not the target demographic for this one
- CLI clients plus a decent text editor: what I always end up falling back to; daily driver at the moment
[1] https://dbeaver.io/
Bugs linger indeed and non-FOSS is obvious.
If by bulky, you mean start-up time (or resource usage which I don’t really care about), I agree, same as with all other JetBrains tools.
But slow? Everything is so fast, much faster than SQL Manager Studio or Heidi SQL (which I just tried). Autocompletion for fields, tables, SPs, everything is lightning fast and always more context appropriate than any other solution I tried.
I just checked Azure Data Studio as well and while completion was as quick, it wasn’t as context-appropriate and query results took far longer to display.
This looks like a great contender though. Would be useful to have a few more filter options.
http://www.squirrelsql.org/
OP's client looks way nicer for sure
Can you file an issue so I don't forget?
This is great, and badly needed IMHO—specially if one can use a single app for both MySQL and SQL Server (Beaver DB is a usability nightmare).
The name will put off a lot of people. To be honest, if someone in a team said "we should replace all our SQL clients with Beekeeper!" the first reaction would be to laugh at the name—which is not good. "SQL Keeper", "SQL Vault", "Sequalize", or anything like that would make people take the project more seriously.
Congrats!
The positive is that it is distinct and can hopefully provide its own identity. Businesses use all sorts of software with silly names!
The competitors are Squirrel and (D)Beaver, so it's all in the backyard.
What's the story behind the name..? :-)
Just looked at the Github language stats for this project:
TSQL 98.5% JavaScript 0.6% PLpgSQL 0.4% Vue 0.3% CSS 0.2% HTML 0.0%
Makes me want to download it, even though I don't have an immediate need for this kind of tool.