tconbeer
tconbeer on Hacker News
Posted by
tconbeer on Monday August 17, 2026 @11:20AM
from the harlequin.sh dept.
I wrote a thing about working in data in the age of AI. What happens when your ego is shattered by Claude?
The assholes outnumber the good ones, and it feels like all of humanity is transactional and extractive.
At first all engagement is exciting and validating. You work nights and weekends to please people you’ve never met, sure that one good turn deserves another.
Then you get your first jerk, then your second, then your third, while your father is in the hospital. You feel pressure to ship a feature you never wanted. Your issue tracker is demoralizing. You get a PR! Maybe someone is coming to your rescue. It sucks. Now you need to figure out how to respond. You’re alone. Your passion project has become your albatross.
It’s an RFI, not an RFP. They are basically looking to build a list of vendors who might be interested in bidding an RFP or competing in a domain-relevant contest.
Not yet. What order would you like to see?
You can install adapters for pg, MySQL, big query, and trino, with others coming soon. harlequin.sh for more info
A. I was using the DuckDB CLI and kept hitting walls on analyses. Had a shower thought of “I wonder if anyone has used Textual for a DuckDB client” and decided to build one myself.
B. This uses Textual, a python framework for TUIs. Python is my language of choice.
C. Hoping for more db adapters soon. Canceling queries is a missing piece I have yet to figure out
E. Maybe if you don’t use Python apps and do have another sql client you really like.
Wow, I had no idea. Thanks!
I originally wrote this because sometimes a CLI or TUI is just super convenient. I used to use the DuckDB and Sqlite CLIs a lot, but was frustrated by their limitations, especially for doing data analysis work (my background).
Author here. Thanks for more love for Harlequin. I’ll be checking back and responding to feedback and questions for the next few hours.
Author here. If that disappointment fuels a half day of dev time, anyone who knows Python can just create their own adapter.
Fair enough (author here). I just launched support for any databases other than DuckDb and published a guide to create adapters for new dbs. I’m expecting the community to step up here, since I’d rather spend my time adding features to Harlequin. ODBC should be coming shortly. The hard part is honestly just having access to a DB server for testing.
The Harlequin v1.0 release made it to the Front Page -- I'm back to announce v1.5, which adds support for other databases (and addresses the biggest feedback I got on HN).
Posted by
tconbeer on Monday December 04, 2023 @12:04PM
from the harlequin.sh dept.
DuckDB provides some really nice python APIs that other databases don't have, so it was a very easy way for me to get started. I'm considering/planning extending to other DBs using plugins. More info here:
https://github.com/tconbeer/harlequin/issues/230
Thanks for the feedback; gotten some of the same here.
I've tried to be really thoughtful about using space and getting value out of every pixel. There are some features in Harlequin that make it nice on small screens, even with the padding:
1. Scrolling is supported in every widget
2. You can show or hide the left side bar with ctrl+b or F9
3. You can enter "full screen mode" in the query editor or results viewer with F10
Beyond the main screen, the interface could be more compact. Especially the export and help modals. I'm considering tweaks to the design.
Right now there is no autocomplete inside the text editor, but that will be added soon. DuckDB itself provides an extension that adds a table function that can be queried for completions like so:
select * from sql_auto_complete(
'select ra'
)
TIL about LazyGit. Looks excellent. Thanks for the tip, and the UI feedback
it's an issue with the highlight color. I'll get that fixed shortly.
It's a bit faster and easier than parquet, but right now the format is unstable, which is a huge downside and makes it unsuitable for medium/long-term storage. After DuckDB v1, they'll keep the format stable and then I think its popularity will increase dramatically.
It's great as:
1. An ephemeral processing engine. For example, I have a machine learning pipeline where I load data into a DataFrame, and then I can use DuckDB to execute SQL on my DataFrame (I prefer both the syntax and performance to Pandas).
2. A data lake processing engine. DuckDB makes it very easy to interact with partitioned files.
3. A lightweight datastore. I have one ETL pipeline where I need to cache the data if an API is unavailable. I just write the DataFrame to a DuckDB database that is on a mounted network filesystem, and read it back when I need it.
Hi everyone! I made this. Tried posting it to Show yesterday, glad this thread is getting more momentum!
For the past four months I've been working (part-time, this is OSS after all) on Harlequin, a SQL IDE for DuckDB that runs in your terminal. I built this because I work in Data, and I found myself often reaching for the DuckDB CLI to quickly query CSV or Parquet data, but then hitting a wall when using the DuckDB CLI as my queries got more complex and my result sets got larger.
Harlequin is a drop-in replacement for the DuckDB CLI that runs in any terminal (even over SSH), but adds a browsable data catalog, full-powered text editor (with multiple buffer support), and a scrollable results viewer that can display thousands of records.
Harlequin is written in Python, using the Textual framework. It's licensed under MIT.
Yesterday I released v1.0.0: you can try it out with `pip install harlequin`, or visit https://harlequin.sh for docs and other info.
Posted by
tconbeer on Tuesday September 19, 2023 @04:09PM
from the show-hn dept.
https://github.com/tconbeer/harlequin
Hi HN -
For the past four months I've been working (part-time, this is OSS after all) on Harlequin, a SQL IDE for DuckDB that runs in your terminal. I built this because I work in Data, and I found myself often reaching for the DuckDB CLI to quickly query CSV or Parquet data, but then hitting a wall when using the DuckDB CLI as my queries got more complex and my result sets got larger.Harlequin...