this post was submitted on 23 Jul 2024
68 points (97.2% liked)

Linux

48008 readers
859 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Hi all,

I am looking for a local database that is easily accessible via the command line.

It can be SQL or non-SQL

Whats my use case? I want to use it kinda like a second brain. A place to save ~~my notes~~, my todo lists, my book reading lists, links / articles to read later, etc.

I want it to be a good CLI citizen so that I can script its commands to create simpler abstractions, rather than writing out the full queries every time.

Maybe sqlite is what I need, but is that ideal for my use case?

Edit: removed notes, as evidently they aren't suitable for this and aren't like the rest.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 20 points 3 months ago (1 children)

Is there a reason you're not looking at tools explicitly built for this like orgmode, obsidian, task-warrior, etc? There's a plethora of these tools and my experience with this is you really don't want to over-engineer your productivity suite.

That said, if you go the SQL route, sqlite is the way to go. Other SQL databases must be run as a daemon whereas sqlite operates on a local file directly.

However any SQL database isnt going to have the CLI youre asking for. Its interface is... SQL, so you're scripts are going to have a bunch of SQL code embedded that isnt easily reusable. A non-sql database will probably be better. I'm not familiar with them but I think there's some that store their data as text files in a folder which is organized a certain way. But that starts looking like the tools I mentioned before.

[–] [email protected] 2 points 3 months ago (1 children)

Task warrior was close to what I wanted. I forgot what it lacked when I tried it. I think it was dependent tasks or sub tasks? If not that, then a tag system with flexible querying. I want querying by tag, due date, and other attributes to be possible.

I think orgmode may be what I want, but the learning curve was discouraging. I was also discouraged about the possibility for myself to build extensions for it, for example to use on android. That would be easier with sql.

Obsidian is gui from my understanding, so it wouldn't fit what I'm looking for. I want something I can integrate with my scripts and other unix tools.

[–] [email protected] 1 points 3 months ago

Yeah I only suggested obsidian because its so popular and is completely out-of-the-box.

If you want everything exactly as you want it you'll need to spend time coding it all yourself. Otherwise you're shopping around for different tools for specific things. Some editor plugin for notes. Another for tasks. Another for reminders etc.

My issue with task warrior was its syncing service taskd. It required that you generate a self signed ssl certificate. You couldn't host it behind caddy. But all the issues listed I'm pretty sure it covers. Its extremely robust.