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.
Definitely sounds like sqlite.
If you want something a bit more powerful than SQLite, MySQL and PostgreSQL both support CLI interactions and scripting too.
For note-taking and to-do lists both seem a bit overkill, and I’d recommend MariaDB instead of MySQL.
@matcha_addict Anything beyond SQLite is too heavy, but if it were me I would use a lightweight wiki like dokuwiki. Having to run SQL to do all these sorts of things sounds like it would just get in the way of both getting and consuming your thoughts.
I don’t think it would suffice. It would work for notes, but I want to also have a todo list in there, for example. Be able to check things off, query by due date, by assignee or task, etc.
I don’t think a database is a good fit for your use case at all, unless you’re willing to reinvent a lot of wheels.
What would then? I haven’t found anything that has command line interface and supports dependent tasks and a flexible, queryable tag system
For todo stuff there’s the excellent “todo-txt” for cli use. Though not great for notes. Perhaps separate tools would be fine?
Counter-proposal: Perhaps use Obsidian instead?
I second this, as it’s my use case.
Providing you lay out each note correctly with appropriate frontmatter, Dataview’s DQL and DataviewJS give you all the SQL-like functionality you could want.
Plus a load of useful functionality beyond a plain DB.
Add in the local REST API as well if you want to easily interact with your notes programmatically:
I want something I can use from the command line, so that I can integrate and interface it with other unix tools and scripts.
As far as I can tell, you can do.
Oh wow that’s pretty cool. From my understanding this is good for notes, but would it work for tasks / todos?
Check out https://www.giuspen.net/cherrytree/, lightweight note-taking app with interesting scripting function built in.
Even if that’s not your cup of tea, it has the option to save your notebook to a single sqlite file, so I take that as good enough proof it’ll work for your similar purposes as well.