idea: CLI tool to manage content in a bDS2 workspace #25

Closed
opened 2026-07-14 14:28:56 +00:00 by hugo · 0 comments
Owner

There should be a CLI tool that allows to do different parts of the workflow automatically. It should be possible to build this CLI tool independently on a machine, so that a server could have automatic processes to publish blogs for example. A solid Elixir cli library must be used so that commands and subcommands and options are properly supported and help is auto-generated.

The cli tool must be installable to ~/.local/bin via a button in the preferences (both in the GUI and the TUI) and the cli tool must then use the same settings and cache database as the GUI application.

Commands that I think woul make sense:

  • rebuild: this would rebuild the caching database. This should get a parameter --incremental, which would not do a full rebuild but a metadata diff and auto-apply with "from file to db" for every difference, otherwise it does a full rebuild of the database
  • repair: this would do the standard rebuild tasks that are outside the full rebuild, like rebuild links for posts and media, rebuild embedding vectors, etc. - all driven by subcommand what part should be repaired
  • render: this would render the blog based on the content anew. could get a parameter --incremental to do validate+apply instead of the full renering and a parameter --force to do the full re-render, ignoring (but updating) content hashes
  • upload: this should do the rsync upload to the host, just like the main app does.
  • push: this would push the current repo to the origin
  • pull: this would pull the current repo from the origin. It should then also do the update of the cache database based on data it pulled, just like the main app
  • post: this would create a post with data from stdin or from parameters (stdin would be JSON formatted, so that it can be easily generated by an LLM). Blog post translation should be done automatically after post creation and tags and stuff should be setable. language should be auto-detected.
  • media: this would create a new image in the blog, using automatically generated title, alt text and description and automatic translation
  • gallery: this would create a gallery post and automatically integrate all referenced images as new media (with all above features) and then add them to the post and have the post translated.
  • post, media and gallery would require tags and categories as parameters to the cli tool probably
  • preference values can be set via cli tool "config"
  • projects can be opened and added to the cache database via cli tool "project add" and switched with "project switch"
  • tui: this command opens the app in TUI mode for interactive use (as implemented with issue #26 )
  • lua: this runs a lua script that is in the database and of the task variant (long running activity) right from the CLI
There should be a CLI tool that allows to do different parts of the workflow automatically. It should be possible to build this CLI tool independently on a machine, so that a server could have automatic processes to publish blogs for example. A solid Elixir cli library must be used so that commands and subcommands and options are properly supported and help is auto-generated. The cli tool must be installable to ~/.local/bin via a button in the preferences (both in the GUI and the TUI) and the cli tool must then use the same settings and cache database as the GUI application. Commands that I think woul make sense: - rebuild: this would rebuild the caching database. This should get a parameter --incremental, which would not do a full rebuild but a metadata diff and auto-apply with "from file to db" for every difference, otherwise it does a full rebuild of the database - repair: this would do the standard rebuild tasks that are outside the full rebuild, like rebuild links for posts and media, rebuild embedding vectors, etc. - all driven by subcommand what part should be repaired - render: this would render the blog based on the content anew. could get a parameter --incremental to do validate+apply instead of the full renering and a parameter --force to do the full re-render, ignoring (but updating) content hashes - upload: this should do the rsync upload to the host, just like the main app does. - push: this would push the current repo to the origin - pull: this would pull the current repo from the origin. It should then also do the update of the cache database based on data it pulled, just like the main app - post: this would create a post with data from stdin or from parameters (stdin would be JSON formatted, so that it can be easily generated by an LLM). Blog post translation should be done automatically after post creation and tags and stuff should be setable. language should be auto-detected. - media: this would create a new image in the blog, using automatically generated title, alt text and description and automatic translation - gallery: this would create a gallery post and automatically integrate all referenced images as new media (with all above features) and then add them to the post and have the post translated. - post, media and gallery would require tags and categories as parameters to the cli tool probably - preference values can be set via cli tool "config" - projects can be opened and added to the cache database via cli tool "project add" and switched with "project switch" - tui: this command opens the app in TUI mode for interactive use (as implemented with issue #26 ) - lua: this runs a lua script that is in the database and of the task variant (long running activity) right from the CLI
hugo added the idea label 2026-07-14 14:28:56 +00:00
hugo closed this issue 2026-07-17 12:26:33 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: hugo/bDS2#25