aclarke

joined 2 years ago
[–] aclarke@lemmy.world 1 points 1 month ago* (last edited 1 month ago) (1 children)

Thanks so much for the other stuff you use! I've been using bm for years, but I haven't used mkcd, so I'm definitely going to add that.

I'm going to give your library, config, and AoC a good look because that's exactly what I was hoping for in this conversation! :)

In general: The only time I add it to my ~/.bashrc is when it's either an alias for something simple, or a very simple function. Otherwise, anything that requires more legwork or is bigger than a few lines, I put in dtools. I used to put it all in my ~/.bashrc but that honestly became kind of cumbersome when I have different configs on different servers, or machines for work vs personal, etc. And sometimes the exports would differ making functions work differently and I didn't want to just have to copy that section of my ~/.bashrc as well every time something updated, hence why I created the dtools repo!

To respond to your other comments, I'm going to do my best to respond in the order they show up:

printf vs echo through bold() vs $'\e[1m'

The dtools script is actually compiled, not written by me. So in the vast majority of the project, my code is all in the src directory, not in the dtools script. In fact, my repo without compilation consists of only 3k lines. The compiled code in the script then makes up the completions, coloring, some error handling, validations, filters, help messages, constraints (like conflicting flags), etc.

So many of the echos you see are from the bashly framework, not my code. I often use heredocs for longer or multiline strings (being SUPER careful when using <<-EOF to make sure my damn editor is using TABs...that's such a nightmare otherwise πŸ˜‚ ).

If you look through my code in particular, you'll see I use many of these bash-isms you've mentioned!

So the One vs Many comment is exactly how the repo works! Each subcommand is its own directory and file. So, for example: All dtools aws commands are in the src/commands/aws directory. And any further subcommands like dtools aws secretsmanager are in another subdirectory where each command has its own individual script!

Bashisms

I'm familiar with many of the bashisms you mentioned except the var="$(< file)" one, that's awesome! I've been trying to migrate away from using cat to just output file contents and use more direct, purpose methods that are often built into tools (like jq '.[]' file.json instead of cat file.json | jq '.[]'). However, I'll say that when I'm trying to read each line into an iterable array, I often use readarray too.

grep | awk | sed

I've been trying for years to get more people to look into awk because it's amazing! It's so undervalued! sed takes some getting used to with the pattern and hold space but it's worth the initial suffering πŸ˜›

Shellcheck

I've got my Helix editor set up with Shellcheck! It's awesome! You'll notice if you look at my code directly that there's a number of places I have to do # shellcheck disable=SC2154 (a variable is referencing an undefined value). This is because the framework creates and passes those variables to my scripts for me.

A Loose Offer

You seem a lot like me in that you do a LOT of bash scripting! So I'll admit to the fact that I've looked at the compiled code and noted that the most important code is mine, and while there's a lot of things going on in the compiled script, I agree with most of it. But I've also been a bit concerned about how often it's spawning subshells when it doesn't have to.

I think I can fix some of them with associative arrays if I add a minimum bash version requirement in my config, but I've honestly never tried. I'll check that out now!

Since you make a solid point about a lot of this that should maybe be updated in the Bashly framework, maybe we should work together to update the framework to have better conventions like you've mentioned?

 

So I'm sure we've all spent time writing scripts or figuring out CLIs for that one project we're working on, and then kind of go on to forget what we did. Then, when another project comes along later, you wish you had that script again so you could see how you did that thing you did.

Personally, I used to just check random scripts into a repo as a kind of "archive" of all my scripts. But I wanted a better way to organize and use these things.

For years I've been building and collecting these scripts into a CLI that I call Devtools to make it so that each script is a subcommand.

I've had a lot of my friends and coworkers ask me to open-source it so they could use it and see how some things are done in Bash, what tools I use, etc. So...here's that CLI!


But what I'd honestly like is more...

So what are your useful scripts or CLIs you've built? Or what's that script you wrote years ago that you now swear by? Or what's that one application you use daily that just makes your life infinitely easier! I want to grow this collection and feed the addiction!

[–] aclarke@lemmy.world 2 points 1 month ago (2 children)

Model Context Protocol. It's basically APIs designed specifically for AIs to use to extend their capabilities. Think of it like, instead of building tools for models to call yourself, the creators of your favorite services make the tools for you and expose them as APIs. All you have to do it point the model at their API to use it.

 

Introducing: Loki! An all-in-one, batteries-included LLM CLI tool

Loki started out as a fork of the fantastic AIChat CLI, where I just wanted to give it first-class MCP server support. It has since evolved into a massive passion project that's a fully-featured tool with its own identity and extensive capabilities! My goal is to make Loki a true "all-in-one" and "batteries-included" LLM tool.

Check out the release notes for a quick overview of everything Loki can do!

What Makes Loki Different From AIChat?

  • First-class MCP support, with support for both local and remote servers
    • Agents, roles, and sessions can all use different MCP servers and switching between them will shutdown any unnecessary ones and start the applicable ones
    • MCP sampling is coming next
  • Comes with a number of useful agents, functions, roles, and macros that are included out-of-the-box
  • Agents, MCP servers, and tools are all managed by Loki now; no need to pull another repository to create and use tools!
    • No need for any more *.txt files
  • Improved DevX when creating bash-based tools (agents or functions)
    • No need to have argc installed: Loki handles all the compilation for you!
    • Loki has a --build-tools flag that will build your bash tools so you can run them exactly the same way Loki would
    • Built-in Bash prompting utils to make your bash tools even more user-friendly and flexible
  • Built-in vault to securely store secrets so you don't have to store your client API keys in environment variables or plaintext anymore
    • Loki also will inject additional secrets into your agent's tools as environment variables so your agents can also use secrets securely
  • Multi-agent support out-of-the-box: You can now create agents that route requests to other agents and use multiple agents together without them trampling all over each other's binaries
  • Improved documentation for all the things!
  • Simplified directory structure so users can share full Loki directories and configurations without massive amounts of data, or secrets being exposed accidentally

What's Next?

  • MCP sampling support, so that MCP servers can send back queries for the LLM to respond to LLM requests. Essentially, think of it like letting the MCP server and LLM talk to each other to answer your query
  • Give Loki a TUI mode to allow it to operate like claude-code, gemini-cli, codex, and continue. The objective being that Loki can function exactly like all those other CLIs or even delegate to them when the problem demands it. No more needing to install a bunch of different CLIs to switch between!
  • Integrate with LSP-AI so you can use Loki from inside your IDEs! Let Loki perform function calls, utilize agents, roles, RAGs, and all other features of Loki to help you write code.
 

Introducing: Loki! An all-in-one, batteries-included LLM CLI tool

Loki started out as a fork of the fantastic AIChat CLI, where I just wanted to give it first-class MCP server support. It has since evolved into a massive passion project that's a fully-featured tool with its own identity and extensive capabilities! My goal is to make Loki a true "all-in-one" and "batteries-included" LLM tool.

Check out the release notes for a quick overview of everything Loki can do!

What Makes Loki Different From AIChat?

  • First-class MCP support, with support for both local and remote servers
    • Agents, roles, and sessions can all use different MCP servers and switching between them will shutdown any unnecessary ones and start the applicable ones
    • MCP sampling is coming next
  • Comes with a number of useful agents, functions, roles, and macros that are included out-of-the-box
  • Agents, MCP servers, and tools are all managed by Loki now; no need to pull another repository to create and use tools!
    • No need for any more *.txt files
  • Improved DevX when creating bash-based tools (agents or functions)
    • No need to have argc installed: Loki handles all the compilation for you!
    • Loki has a --build-tools flag that will build your bash tools so you can run them exactly the same way Loki would
    • Built-in Bash prompting utils to make your bash tools even more user-friendly and flexible
  • Built-in vault to securely store secrets so you don't have to store your client API keys in environment variables or plaintext anymore
    • Loki also will inject additional secrets into your agent's tools as environment variables so your agents can also use secrets securely
  • Multi-agent support out-of-the-box: You can now create agents that route requests to other agents and use multiple agents together without them trampling all over each other's binaries
  • Improved documentation for all the things!
  • Simplified directory structure so users can share full Loki directories and configurations without massive amounts of data, or secrets being exposed accidentally

What's Next?

  • MCP sampling support, so that MCP servers can send back queries for the LLM to respond to LLM requests. Essentially, think of it like letting the MCP server and LLM talk to each other to answer your query
  • Give Loki a TUI mode to allow it to operate like claude-code, gemini-cli, codex, and continue. The objective being that Loki can function exactly like all those other CLIs or even delegate to them when the problem demands it. No more needing to install a bunch of different CLIs to switch between!
  • Integrate with LSP-AI so you can use Loki from inside your IDEs! Let Loki perform function calls, utilize agents, roles, RAGs, and all other features of Loki to help you write code.
 

Introducing: Loki! An all-in-one, batteries-included LLM CLI tool

Loki started out as a fork of the fantastic AIChat CLI, where I just wanted to give it first-class MCP server support. It has since evolved into a massive passion project that's a fully-featured tool with its own identity and extensive capabilities! My goal is to make Loki a true "all-in-one" and "batteries-included" LLM tool.

Check out the release notes for a quick overview of everything Loki can do!

What Makes Loki Different From AIChat?

  • First-class MCP support, with support for both local and remote servers
    • Agents, roles, and sessions can all use different MCP servers and switching between them will shutdown any unnecessary ones and start the applicable ones
    • MCP sampling is coming next
  • Comes with a number of useful agents, functions, roles, and macros that are included out-of-the-box
  • Agents, MCP servers, and tools are all managed by Loki now; no need to pull another repository to create and use tools!
    • No need for any more *.txt files
  • Improved DevX when creating bash-based tools (agents or functions)
    • No need to have argc installed: Loki handles all the compilation for you!
    • Loki has a --build-tools flag that will build your bash tools so you can run them exactly the same way Loki would
    • Built-in Bash prompting utils to make your bash tools even more user-friendly and flexible
  • Built-in vault to securely store secrets so you don't have to store your client API keys in environment variables or plaintext anymore
    • Loki also will inject additional secrets into your agent's tools as environment variables so your agents can also use secrets securely
  • Multi-agent support out-of-the-box: You can now create agents that route requests to other agents and use multiple agents together without them trampling all over each other's binaries
  • Improved documentation for all the things!
  • Simplified directory structure so users can share full Loki directories and configurations without massive amounts of data, or secrets being exposed accidentally

What's Next?

  • MCP sampling support, so that MCP servers can send back queries for the LLM to respond to LLM requests. Essentially, think of it like letting the MCP server and LLM talk to each other to answer your query
  • Give Loki a TUI mode to allow it to operate like claude-code, gemini-cli, codex, and continue. The objective being that Loki can function exactly like all those other CLIs or even delegate to them when the problem demands it. No more needing to install a bunch of different CLIs to switch between!
  • Integrate with LSP-AI so you can use Loki from inside your IDEs! Let Loki perform function calls, utilize agents, roles, RAGs, and all other features of Loki to help you write code.
 

Managarr v0.6.0 has been released with some fun new features!

Managarr is a terminal-based application for managing all your Servarr instances from one place. It provides a user-friendly interface to interact with your media libraries, making it easier to manage your downloads, monitor your series and movies, and perform various actions directly from the terminal.

It sports two modes: a TUI mode (Text User Interface) and a CLI mode (Command Line Interface).

TUI mode gives you an interactive User Interface right inside your terminal window, allowing you to navigate through your Sonarr and Radarr libraries, view details about your series and movies, and perform actions like adding or removing items, all through keyboard shortcuts.

CLI mode lets you execute commands directly from the terminal to manage your Servarr instances without needing to open the TUI. This is great for quick tasks or for integrating with scripts and automation tools.

The biggest change: Managarr now has themes!

The UI has been completely overhauled to support themes! You can now customize the look and feel of Managarr to suit your preferences. Choose from a variety of themes to change the color scheme and overall aesthetic of the application.

Here's just a few examples:

Default

default

Dracula

dracula

Watermelon Dark

watermelon-dark

You can also customize the themes to your heart's content! Check out the themes documentation for more details on how to create and apply your own themes.

Features

  • Added support for alternative Vim-like navigation keybindings (hjkl movements) Discussion #34
  • Added support for terminal-like backspace operations (Ctrl-h instead of Backspace)
  • You can now specify the number of downloads to fetch from the CLI: managarr <sonarr/radarr> list downloads --count 1234
  • You can now toggle movie monitoring from the CLI without needing to use the edit subcommand: managarr radarr toggle-movie-monitoring --movie-id 1234 #43
  • You can also now toggle series monitoring from the CLI without needing to use the edit subcommand: managarr sonarr toggle-series-monitoring --series-id 1234 #43
  • You can now also toggle movie/series monitoring directly from the Library view for each Servarr with the m key. No need to open the Edit [Series/Movie] modal anymore to simply toggle monitoring for an item! #43
  • Users can now skip up/down tables 20 items at a time using Ctrl-d and Ctrl-u keys (mirroring the same functionality in the Helix editor). Alternatively, the standard PgUp and PgDown keys are supported for the same operation. This is particularly useful for large libraries with many items #45
  • The total disk usage for any given series is now displayed in the Series Library view to mirror Radarr functionality #44
  • All keybindings and help tips have been refactored into a unified, dynamic menu that displays the available keybindings for the current view. This is accessible by pressing ? in any view, and it will display the keybindings relevant to that view. #32
  • Users can now add any number of custom headers to each Servarr's configuration, enabling support for OAuth and other custom authentication schemes for Servarr access #47

Fixes

  • Fixed a bug that caused the Collection Details modal to vanish when attempting to add a new film to a collection
  • Fixed a bug that caused the Radarr library to be rendered, then the Collections table to be rendered over it (merging the two), and then showing a popup which made for ugly and confusing UI
  • Wrapped Season.statistics with Option to prevent a panic if the season doesn't have any statistics (edge-case, only happens with outdated Sonarr data) #35
  • Corrected a bug that caused double key presses on Windows machines #40 (Thanks @cwesleys!)
  • Defaulted to empty tags to improve fault tolerance within the Sonarr and Radarr UIs. This is in response to #42, #48. It seems like this may be a bug in Sonarr where a series can have an associated tag ID but that tag Id doesn't exist in the list of tags, but I still can't quite track it down.
  • Fixed an issue that caused some panics to occur when video codecs are undefined in file metadata #38
  • More than 10 downloads will be listed in the Downloads tabs for both Radarr and Sonarr
  • Fixed a bug where Sonarr would have empty values on season releases for seeders/leechers instead of '0'
  • Fixed a bug where some Radarr films don't have studios associated with them, so the studio field is now nullable, preventing crashes when loading the Radarr library

Security Fixes

Minor Changes

  • Due to the new support for Vim-like navigation keybindings, the system logs are now opened using L instead of l
  • Refactored the network module to be more idiomatic Rust and to improve maintainability

Documentation

  • Update README.md to remove the cheeky Try Before You Buy heading since some users reported it as misleading; i.e. they thought it meant Managarr cost money. Managarr is and always will be, free

As always, thank you to everyone who reported an issue or requested a feature! You all make it a LOT easier to keep up with breaking API and add new features. If you have any feedback or suggestions, please don't hesitate to open an issue or discussion on the GitHub repository.

 

Managarr v0.6.0 has been released with some fun new features!

Managarr is a terminal-based application for managing all your Servarr instances from one place. It provides a user-friendly interface to interact with your media libraries, making it easier to manage your downloads, monitor your series and movies, and perform various actions directly from the terminal.

It sports two modes: a TUI mode (Text User Interface) and a CLI mode (Command Line Interface).

TUI mode gives you an interactive User Interface right inside your terminal window, allowing you to navigate through your Sonarr and Radarr libraries, view details about your series and movies, and perform actions like adding or removing items, all through keyboard shortcuts.

CLI mode lets you execute commands directly from the terminal to manage your Servarr instances without needing to open the TUI. This is great for quick tasks or for integrating with scripts and automation tools.

The biggest change: Managarr now has themes!

The UI has been completely overhauled to support themes! You can now customize the look and feel of Managarr to suit your preferences. Choose from a variety of themes to change the color scheme and overall aesthetic of the application.

Here's just a few examples:

Default

default

Dracula

dracula

Watermelon Dark

watermelon-dark

You can also customize the themes to your heart's content! Check out the themes documentation for more details on how to create and apply your own themes.

Features

  • Added support for alternative Vim-like navigation keybindings (hjkl movements) Discussion #34
  • Added support for terminal-like backspace operations (Ctrl-h instead of Backspace)
  • You can now specify the number of downloads to fetch from the CLI: managarr <sonarr/radarr> list downloads --count 1234
  • You can now toggle movie monitoring from the CLI without needing to use the edit subcommand: managarr radarr toggle-movie-monitoring --movie-id 1234 #43
  • You can also now toggle series monitoring from the CLI without needing to use the edit subcommand: managarr sonarr toggle-series-monitoring --series-id 1234 #43
  • You can now also toggle movie/series monitoring directly from the Library view for each Servarr with the m key. No need to open the Edit [Series/Movie] modal anymore to simply toggle monitoring for an item! #43
  • Users can now skip up/down tables 20 items at a time using Ctrl-d and Ctrl-u keys (mirroring the same functionality in the Helix editor). Alternatively, the standard PgUp and PgDown keys are supported for the same operation. This is particularly useful for large libraries with many items #45
  • The total disk usage for any given series is now displayed in the Series Library view to mirror Radarr functionality #44
  • All keybindings and help tips have been refactored into a unified, dynamic menu that displays the available keybindings for the current view. This is accessible by pressing ? in any view, and it will display the keybindings relevant to that view. #32
  • Users can now add any number of custom headers to each Servarr's configuration, enabling support for OAuth and other custom authentication schemes for Servarr access #47

Fixes

  • Fixed a bug that caused the Collection Details modal to vanish when attempting to add a new film to a collection
  • Fixed a bug that caused the Radarr library to be rendered, then the Collections table to be rendered over it (merging the two), and then showing a popup which made for ugly and confusing UI
  • Wrapped Season.statistics with Option to prevent a panic if the season doesn't have any statistics (edge-case, only happens with outdated Sonarr data) #35
  • Corrected a bug that caused double key presses on Windows machines #40 (Thanks @cwesleys!)
  • Defaulted to empty tags to improve fault tolerance within the Sonarr and Radarr UIs. This is in response to #42, #48. It seems like this may be a bug in Sonarr where a series can have an associated tag ID but that tag Id doesn't exist in the list of tags, but I still can't quite track it down.
  • Fixed an issue that caused some panics to occur when video codecs are undefined in file metadata #38
  • More than 10 downloads will be listed in the Downloads tabs for both Radarr and Sonarr
  • Fixed a bug where Sonarr would have empty values on season releases for seeders/leechers instead of '0'
  • Fixed a bug where some Radarr films don't have studios associated with them, so the studio field is now nullable, preventing crashes when loading the Radarr library

Security Fixes

Minor Changes

  • Due to the new support for Vim-like navigation keybindings, the system logs are now opened using L instead of l
  • Refactored the network module to be more idiomatic Rust and to improve maintainability

Documentation

  • Update README.md to remove the cheeky Try Before You Buy heading since some users reported it as misleading; i.e. they thought it meant Managarr cost money. Managarr is and always will be, free

As always, thank you to everyone who reported an issue or requested a feature! You all make it a LOT easier to keep up with breaking API and add new features. If you have any feedback or suggestions, please don't hesitate to open an issue or discussion on the GitHub repository.

 

Managarr v0.6.0 has been released with some fun new features!

Managarr is a terminal-based application for managing all your Servarr instances from one place. It provides a user-friendly interface to interact with your media libraries, making it easier to manage your downloads, monitor your series and movies, and perform various actions directly from the terminal.

It sports two modes: a TUI mode (Text User Interface) and a CLI mode (Command Line Interface).

TUI mode gives you an interactive User Interface right inside your terminal window, allowing you to navigate through your Sonarr and Radarr libraries, view details about your series and movies, and perform actions like adding or removing items, all through keyboard shortcuts.

CLI mode lets you execute commands directly from the terminal to manage your Servarr instances without needing to open the TUI. This is great for quick tasks or for integrating with scripts and automation tools.

The biggest change: Managarr now has themes!

The UI has been completely overhauled to support themes! You can now customize the look and feel of Managarr to suit your preferences. Choose from a variety of themes to change the color scheme and overall aesthetic of the application.

Here's just a few examples:

Default

default

Dracula

dracula

Watermelon Dark

watermelon-dark

You can also customize the themes to your heart's content! Check out the themes documentation for more details on how to create and apply your own themes.

Features

  • Added support for alternative Vim-like navigation keybindings (hjkl movements) Discussion #34
  • Added support for terminal-like backspace operations (Ctrl-h instead of Backspace)
  • You can now specify the number of downloads to fetch from the CLI: managarr <sonarr/radarr> list downloads --count 1234
  • You can now toggle movie monitoring from the CLI without needing to use the edit subcommand: managarr radarr toggle-movie-monitoring --movie-id 1234 #43
  • You can also now toggle series monitoring from the CLI without needing to use the edit subcommand: managarr sonarr toggle-series-monitoring --series-id 1234 #43
  • You can now also toggle movie/series monitoring directly from the Library view for each Servarr with the m key. No need to open the Edit [Series/Movie] modal anymore to simply toggle monitoring for an item! #43
  • Users can now skip up/down tables 20 items at a time using Ctrl-d and Ctrl-u keys (mirroring the same functionality in the Helix editor). Alternatively, the standard PgUp and PgDown keys are supported for the same operation. This is particularly useful for large libraries with many items #45
  • The total disk usage for any given series is now displayed in the Series Library view to mirror Radarr functionality #44
  • All keybindings and help tips have been refactored into a unified, dynamic menu that displays the available keybindings for the current view. This is accessible by pressing ? in any view, and it will display the keybindings relevant to that view. #32
  • Users can now add any number of custom headers to each Servarr's configuration, enabling support for OAuth and other custom authentication schemes for Servarr access #47

Fixes

  • Fixed a bug that caused the Collection Details modal to vanish when attempting to add a new film to a collection
  • Fixed a bug that caused the Radarr library to be rendered, then the Collections table to be rendered over it (merging the two), and then showing a popup which made for ugly and confusing UI
  • Wrapped Season.statistics with Option to prevent a panic if the season doesn't have any statistics (edge-case, only happens with outdated Sonarr data) #35
  • Corrected a bug that caused double key presses on Windows machines #40 (Thanks @cwesleys!)
  • Defaulted to empty tags to improve fault tolerance within the Sonarr and Radarr UIs. This is in response to #42, #48. It seems like this may be a bug in Sonarr where a series can have an associated tag ID but that tag Id doesn't exist in the list of tags, but I still can't quite track it down.
  • Fixed an issue that caused some panics to occur when video codecs are undefined in file metadata #38
  • More than 10 downloads will be listed in the Downloads tabs for both Radarr and Sonarr
  • Fixed a bug where Sonarr would have empty values on season releases for seeders/leechers instead of '0'
  • Fixed a bug where some Radarr films don't have studios associated with them, so the studio field is now nullable, preventing crashes when loading the Radarr library

Security Fixes

Minor Changes

  • Due to the new support for Vim-like navigation keybindings, the system logs are now opened using L instead of l
  • Refactored the network module to be more idiomatic Rust and to improve maintainability

Documentation

  • Update README.md to remove the cheeky Try Before You Buy heading since some users reported it as misleading; i.e. they thought it meant Managarr cost money. Managarr is and always will be, free

As always, thank you to everyone who reported an issue or requested a feature! You all make it a LOT easier to keep up with breaking API and add new features. If you have any feedback or suggestions, please don't hesitate to open an issue or discussion on the GitHub repository.

 

Managarr v0.6.0 has been released with some fun new features!

Managarr is a terminal-based application for managing all your Servarr instances from one place. It provides a user-friendly interface to interact with your media libraries, making it easier to manage your downloads, monitor your series and movies, and perform various actions directly from the terminal.

It sports two modes: a TUI mode (Text User Interface) and a CLI mode (Command Line Interface).

TUI mode gives you an interactive User Interface right inside your terminal window, allowing you to navigate through your Sonarr and Radarr libraries, view details about your series and movies, and perform actions like adding or removing items, all through keyboard shortcuts.

CLI mode lets you execute commands directly from the terminal to manage your Servarr instances without needing to open the TUI. This is great for quick tasks or for integrating with scripts and automation tools.

The biggest change: Managarr now has themes!

The UI has been completely overhauled to support themes! You can now customize the look and feel of Managarr to suit your preferences. Choose from a variety of themes to change the color scheme and overall aesthetic of the application.

Here's just a few examples:

Default

default

Dracula

dracula

Watermelon Dark

watermelon-dark

You can also customize the themes to your heart's content! Check out the themes documentation for more details on how to create and apply your own themes.

Features

  • Added support for alternative Vim-like navigation keybindings (hjkl movements) Discussion #34
  • Added support for terminal-like backspace operations (Ctrl-h instead of Backspace)
  • You can now specify the number of downloads to fetch from the CLI: managarr <sonarr/radarr> list downloads --count 1234
  • You can now toggle movie monitoring from the CLI without needing to use the edit subcommand: managarr radarr toggle-movie-monitoring --movie-id 1234 #43
  • You can also now toggle series monitoring from the CLI without needing to use the edit subcommand: managarr sonarr toggle-series-monitoring --series-id 1234 #43
  • You can now also toggle movie/series monitoring directly from the Library view for each Servarr with the m key. No need to open the Edit [Series/Movie] modal anymore to simply toggle monitoring for an item! #43
  • Users can now skip up/down tables 20 items at a time using Ctrl-d and Ctrl-u keys (mirroring the same functionality in the Helix editor). Alternatively, the standard PgUp and PgDown keys are supported for the same operation. This is particularly useful for large libraries with many items #45
  • The total disk usage for any given series is now displayed in the Series Library view to mirror Radarr functionality #44
  • All keybindings and help tips have been refactored into a unified, dynamic menu that displays the available keybindings for the current view. This is accessible by pressing ? in any view, and it will display the keybindings relevant to that view. #32
  • Users can now add any number of custom headers to each Servarr's configuration, enabling support for OAuth and other custom authentication schemes for Servarr access #47

Fixes

  • Fixed a bug that caused the Collection Details modal to vanish when attempting to add a new film to a collection
  • Fixed a bug that caused the Radarr library to be rendered, then the Collections table to be rendered over it (merging the two), and then showing a popup which made for ugly and confusing UI
  • Wrapped Season.statistics with Option to prevent a panic if the season doesn't have any statistics (edge-case, only happens with outdated Sonarr data) #35
  • Corrected a bug that caused double key presses on Windows machines #40 (Thanks @cwesleys!)
  • Defaulted to empty tags to improve fault tolerance within the Sonarr and Radarr UIs. This is in response to #42, #48. It seems like this may be a bug in Sonarr where a series can have an associated tag ID but that tag Id doesn't exist in the list of tags, but I still can't quite track it down.
  • Fixed an issue that caused some panics to occur when video codecs are undefined in file metadata #38
  • More than 10 downloads will be listed in the Downloads tabs for both Radarr and Sonarr
  • Fixed a bug where Sonarr would have empty values on season releases for seeders/leechers instead of '0'
  • Fixed a bug where some Radarr films don't have studios associated with them, so the studio field is now nullable, preventing crashes when loading the Radarr library

Security Fixes

Minor Changes

  • Due to the new support for Vim-like navigation keybindings, the system logs are now opened using L instead of l
  • Refactored the network module to be more idiomatic Rust and to improve maintainability

Documentation

  • Update README.md to remove the cheeky Try Before You Buy heading since some users reported it as misleading; i.e. they thought it meant Managarr cost money. Managarr is and always will be, free

As always, thank you to everyone who reported an issue or requested a feature! You all make it a LOT easier to keep up with breaking API and add new features. If you have any feedback or suggestions, please don't hesitate to open an issue or discussion on the GitHub repository.

 

Managarr v0.6.0 has been released with some fun new features!

Managarr is a terminal-based application for managing all your Servarr instances from one place. It provides a user-friendly interface to interact with your media libraries, making it easier to manage your downloads, monitor your series and movies, and perform various actions directly from the terminal.

It sports two modes: a TUI mode (Text User Interface) and a CLI mode (Command Line Interface).

TUI mode gives you an interactive User Interface right inside your terminal window, allowing you to navigate through your Sonarr and Radarr libraries, view details about your series and movies, and perform actions like adding or removing items, all through keyboard shortcuts.

CLI mode lets you execute commands directly from the terminal to manage your Servarr instances without needing to open the TUI. This is great for quick tasks or for integrating with scripts and automation tools.

The biggest change: Managarr now has themes!

The UI has been completely overhauled to support themes! You can now customize the look and feel of Managarr to suit your preferences. Choose from a variety of themes to change the color scheme and overall aesthetic of the application.

Here's just a few examples:

Default

default

Dracula

dracula

Watermelon Dark

watermelon-dark

You can also customize the themes to your heart's content! Check out the themes documentation for more details on how to create and apply your own themes.

Features

  • Added support for alternative Vim-like navigation keybindings (hjkl movements) Discussion #34
  • Added support for terminal-like backspace operations (Ctrl-h instead of Backspace)
  • You can now specify the number of downloads to fetch from the CLI: managarr <sonarr/radarr> list downloads --count 1234
  • You can now toggle movie monitoring from the CLI without needing to use the edit subcommand: managarr radarr toggle-movie-monitoring --movie-id 1234 #43
  • You can also now toggle series monitoring from the CLI without needing to use the edit subcommand: managarr sonarr toggle-series-monitoring --series-id 1234 #43
  • You can now also toggle movie/series monitoring directly from the Library view for each Servarr with the m key. No need to open the Edit [Series/Movie] modal anymore to simply toggle monitoring for an item! #43
  • Users can now skip up/down tables 20 items at a time using Ctrl-d and Ctrl-u keys (mirroring the same functionality in the Helix editor). Alternatively, the standard PgUp and PgDown keys are supported for the same operation. This is particularly useful for large libraries with many items #45
  • The total disk usage for any given series is now displayed in the Series Library view to mirror Radarr functionality #44
  • All keybindings and help tips have been refactored into a unified, dynamic menu that displays the available keybindings for the current view. This is accessible by pressing ? in any view, and it will display the keybindings relevant to that view. #32
  • Users can now add any number of custom headers to each Servarr's configuration, enabling support for OAuth and other custom authentication schemes for Servarr access #47

Fixes

  • Fixed a bug that caused the Collection Details modal to vanish when attempting to add a new film to a collection
  • Fixed a bug that caused the Radarr library to be rendered, then the Collections table to be rendered over it (merging the two), and then showing a popup which made for ugly and confusing UI
  • Wrapped Season.statistics with Option to prevent a panic if the season doesn't have any statistics (edge-case, only happens with outdated Sonarr data) #35
  • Corrected a bug that caused double key presses on Windows machines #40 (Thanks @cwesleys!)
  • Defaulted to empty tags to improve fault tolerance within the Sonarr and Radarr UIs. This is in response to #42, #48. It seems like this may be a bug in Sonarr where a series can have an associated tag ID but that tag Id doesn't exist in the list of tags, but I still can't quite track it down.
  • Fixed an issue that caused some panics to occur when video codecs are undefined in file metadata #38
  • More than 10 downloads will be listed in the Downloads tabs for both Radarr and Sonarr
  • Fixed a bug where Sonarr would have empty values on season releases for seeders/leechers instead of '0'
  • Fixed a bug where some Radarr films don't have studios associated with them, so the studio field is now nullable, preventing crashes when loading the Radarr library

Security Fixes

Minor Changes

  • Due to the new support for Vim-like navigation keybindings, the system logs are now opened using L instead of l
  • Refactored the network module to be more idiomatic Rust and to improve maintainability

Documentation

  • Update README.md to remove the cheeky Try Before You Buy heading since some users reported it as misleading; i.e. they thought it meant Managarr cost money. Managarr is and always will be, free

As always, thank you to everyone who reported an issue or requested a feature! You all make it a LOT easier to keep up with breaking API and add new features. If you have any feedback or suggestions, please don't hesitate to open an issue or discussion on the GitHub repository.

 

Managarr v0.6.0 has been released with some fun new features!

Managarr is a terminal-based application for managing all your Servarr instances from one place. It provides a user-friendly interface to interact with your media libraries, making it easier to manage your downloads, monitor your series and movies, and perform various actions directly from the terminal.

It sports two modes: a TUI mode (Text User Interface) and a CLI mode (Command Line Interface).

TUI mode gives you an interactive User Interface right inside your terminal window, allowing you to navigate through your Sonarr and Radarr libraries, view details about your series and movies, and perform actions like adding or removing items, all through keyboard shortcuts.

CLI mode lets you execute commands directly from the terminal to manage your Servarr instances without needing to open the TUI. This is great for quick tasks or for integrating with scripts and automation tools.

The biggest change: Managarr now has themes!

The UI has been completely overhauled to support themes! You can now customize the look and feel of Managarr to suit your preferences. Choose from a variety of themes to change the color scheme and overall aesthetic of the application.

Here's just a few examples:

Default

default

Dracula

dracula

Watermelon Dark

watermelon-dark

You can also customize the themes to your heart's content! Check out the themes documentation for more details on how to create and apply your own themes.

Features

  • Added support for alternative Vim-like navigation keybindings (hjkl movements) Discussion #34
  • Added support for terminal-like backspace operations (Ctrl-h instead of Backspace)
  • You can now specify the number of downloads to fetch from the CLI: managarr <sonarr/radarr> list downloads --count 1234
  • You can now toggle movie monitoring from the CLI without needing to use the edit subcommand: managarr radarr toggle-movie-monitoring --movie-id 1234 #43
  • You can also now toggle series monitoring from the CLI without needing to use the edit subcommand: managarr sonarr toggle-series-monitoring --series-id 1234 #43
  • You can now also toggle movie/series monitoring directly from the Library view for each Servarr with the m key. No need to open the Edit [Series/Movie] modal anymore to simply toggle monitoring for an item! #43
  • Users can now skip up/down tables 20 items at a time using Ctrl-d and Ctrl-u keys (mirroring the same functionality in the Helix editor). Alternatively, the standard PgUp and PgDown keys are supported for the same operation. This is particularly useful for large libraries with many items #45
  • The total disk usage for any given series is now displayed in the Series Library view to mirror Radarr functionality #44
  • All keybindings and help tips have been refactored into a unified, dynamic menu that displays the available keybindings for the current view. This is accessible by pressing ? in any view, and it will display the keybindings relevant to that view. #32
  • Users can now add any number of custom headers to each Servarr's configuration, enabling support for OAuth and other custom authentication schemes for Servarr access #47

Fixes

  • Fixed a bug that caused the Collection Details modal to vanish when attempting to add a new film to a collection
  • Fixed a bug that caused the Radarr library to be rendered, then the Collections table to be rendered over it (merging the two), and then showing a popup which made for ugly and confusing UI
  • Wrapped Season.statistics with Option to prevent a panic if the season doesn't have any statistics (edge-case, only happens with outdated Sonarr data) #35
  • Corrected a bug that caused double key presses on Windows machines #40 (Thanks @cwesleys!)
  • Defaulted to empty tags to improve fault tolerance within the Sonarr and Radarr UIs. This is in response to #42, #48. It seems like this may be a bug in Sonarr where a series can have an associated tag ID but that tag Id doesn't exist in the list of tags, but I still can't quite track it down.
  • Fixed an issue that caused some panics to occur when video codecs are undefined in file metadata #38
  • More than 10 downloads will be listed in the Downloads tabs for both Radarr and Sonarr
  • Fixed a bug where Sonarr would have empty values on season releases for seeders/leechers instead of '0'
  • Fixed a bug where some Radarr films don't have studios associated with them, so the studio field is now nullable, preventing crashes when loading the Radarr library

Security Fixes

Minor Changes

  • Due to the new support for Vim-like navigation keybindings, the system logs are now opened using L instead of l
  • Refactored the network module to be more idiomatic Rust and to improve maintainability

Documentation

  • Update README.md to remove the cheeky Try Before You Buy heading since some users reported it as misleading; i.e. they thought it meant Managarr cost money. Managarr is and always will be, free

As always, thank you to everyone who reported an issue or requested a feature! You all make it a LOT easier to keep up with breaking API and add new features. If you have any feedback or suggestions, please don't hesitate to open an issue or discussion on the GitHub repository.

[–] aclarke@lemmy.world 3 points 9 months ago

Sadly no I'm not, but I was very inspired by him when I was in that scene! PSP hacking was my first experience with customizing any kind of device beyond what average users can do and it's what made me fall in love with computers as a kid. I don't think I'd be the software engineer I am today or even in this field if it wasn't for him. My name is Alex so I thought I could pay homage to him by choosing a similar username, since he had such a massive impact on my life ☺️

[–] aclarke@lemmy.world 4 points 10 months ago* (last edited 10 months ago) (1 children)

To answer your question, I built it for a few reasons:

  • I wanted to learn Rust, so I used this project to do that
  • I really love TUI's and I pretty much live in my command line at work, and since I already automate everything I can to make my work life easier, I wanted to be able to do the same with my homelab
  • I think it looks cool
  • For fun. If no one else ever gets use out of it, that's okay! I just really enjoyed building it and I'm excited to build out more of it.

But also: Why not? ☺️

So really, you would only use this if you like TUIs or want a command line tool for interacting with your Servarrs. If you have no use for it, that's totally fine too!

The one actual use I've found people say they use it for is people who don't want to expose the web interface to interact with their Servarrs and only interact via SSH. Then they like to use this instead.

[–] aclarke@lemmy.world 6 points 10 months ago* (last edited 10 months ago)

To answer your question, I built it for a few reasons:

  • I wanted to learn Rust, so I used this project to do that
  • I really love TUI's and I pretty much live in my command line at work, and since I already automate everything I can to make my work life easier, I wanted to be able to do the same with my homelab
  • I think it looks cool
  • For fun. If no one else ever gets use out of it, that's okay! I just really enjoyed building it and I'm excited to build out more of it.

But also: Why not? ☺️

So really, you would only use this if you like TUIs or want a command line tool for interacting with your Servarrs. If you have no use for it, that's totally fine too!

The one actual use I've found people say they use it for is people who don't want to expose the web interface to interact with their Servarrs and only interact via SSH. Then they like to use this instead.

[–] aclarke@lemmy.world 4 points 10 months ago (3 children)

... Well that's... Concerning...πŸ˜…

What browser are you using? I want to try to recreate it!

[–] aclarke@lemmy.world 2 points 10 months ago

Sorry for the confusion! I was trying to be a little cheeky and I guess I didn't realize how that may come across!

 

Managarr - A TUI and CLI to help you manage your Servarrs.

Thanks to everyone who contributed to this release, be that in code, issues, or enhancement suggestions! You all help fuel my passion for working on this and it doesn't go unappreciated! πŸ˜„

As always, you can try out the changes yourself via the Managarr Demo Site

Breaking Changes

  • Managarr now supports multiple instances of the same Servarr with custom names and ordering. (See Features below) To accommodate this, configuration files must be updated so that all Servarrs listed beneath radarr, sonarr, etc., be updated to be lists, not individual Servarrs. For example: to migrate from the following config:

    radarr:
      host: 192.168.0.78
      port: 7878
      api_token: someApiToken1234
    sonarr:
      host: 192.168.0.89
      port: 8989
      api_token: someApiToken1234
    

    You would change the above configuration to the following:

    radarr:
      - host: 192.168.0.78
        port: 7878
        api_token: someApiToken1234
    sonarr:
      - host: 192.168.0.89
        port: 8989
        api_token: someApiToken1234
    
  • The --config flag has been renamed to --config-fileto make it more clear what it does.

Features

  • Users can now specify multiple instances of the same type of Servarr and give them custom names and ordering. This allows users to manage multiple instances of the same Servarr, such as an Anime and TV Show instance of Sonarr. To configure, add a list of Servarrs under the respective type (e.g. radarr, sonarr, etc.). (#17)

    • You can specify ordering of your Servarrs and how they will appear in the UI via the weight field. The lower the weight, the further to the left the Servarr will appear in the UI.
    • You can also name your Servarrs whatever you wish. This name will be displayed in the UI. For example, to name your Sonarr instances:
      sonarr:
        - name: Anime
          host: 192.168.0.89
          api_token: someApiToken
      
        - name: TV Shows
          host: 192.168.0.88
          api_token: someOtherApiToken
      
    • This change also required the introduction of a new CLI flag to specify which Servarr you wish to interact with: --servarr-name. This corresponds directly to the value of the name field in your configuration. If you did not specify a name in the configuration, then default names are provided for you corresponding to the Servarr; For example, if you defined two Radarr instances with no names, they will be named Radarr 1 and Radarr 2, respectively.
    • Omitting the --servarr-name flag with multi-instance configurations will default to using the first instance that appears in your config. For example, for the following configuration:
      sonarr:
        - host: 192.168.0.89
          api_token: someApiToken
      
        - host: 192.168.0.88
          api_token: someOtherApiToken
      
      Running managarr sonarr list series will default to interacting with the Sonarr instance at 192.168.0.89. This is the same as running managarr sonarr list series --servarr-name 'Sonarr 1'.
  • API tokens can now be fetched from files instead of needing to be hardcoded (#31). The following is an example config that loads the API token from a file:

    radarr:
      - host: 192.168.0.78
        api_token_file: /home/root/.config/radarr_token
    
  • Configurations now interpolate environment variables (#23). This allows you to load sensitive information from environment variables. For example, to load the API token from an environment variable, you can do the following:

    radarr:
      - host: 192.168.0.78
        api_token: ${MY_RADARR_API_TOKEN_ENV_VAR}
    

    This is available for all fields in the configuration file.

Security Updates

Miscellaneous

 

Managarr - A TUI and CLI to help you manage your Servarrs.

Thanks to everyone who contributed to this release, be that in code, issues, or enhancement suggestions! You all help fuel my passion for working on this and it doesn't go unappreciated! πŸ˜„

As always, you can try out the changes yourself via the Managarr Demo Site

Breaking Changes

  • Managarr now supports multiple instances of the same Servarr with custom names and ordering. (See Features below) To accommodate this, configuration files must be updated so that all Servarrs listed beneath radarr, sonarr, etc., be updated to be lists, not individual Servarrs. For example: to migrate from the following config:

    radarr:
      host: 192.168.0.78
      port: 7878
      api_token: someApiToken1234
    sonarr:
      host: 192.168.0.89
      port: 8989
      api_token: someApiToken1234
    

    You would change the above configuration to the following:

    radarr:
      - host: 192.168.0.78
        port: 7878
        api_token: someApiToken1234
    sonarr:
      - host: 192.168.0.89
        port: 8989
        api_token: someApiToken1234
    
  • The --config flag has been renamed to --config-fileto make it more clear what it does.

Features

  • Users can now specify multiple instances of the same type of Servarr and give them custom names and ordering. This allows users to manage multiple instances of the same Servarr, such as an Anime and TV Show instance of Sonarr. To configure, add a list of Servarrs under the respective type (e.g. radarr, sonarr, etc.). (#17)

    • You can specify ordering of your Servarrs and how they will appear in the UI via the weight field. The lower the weight, the further to the left the Servarr will appear in the UI.
    • You can also name your Servarrs whatever you wish. This name will be displayed in the UI. For example, to name your Sonarr instances:
      sonarr:
        - name: Anime
          host: 192.168.0.89
          api_token: someApiToken
      
        - name: TV Shows
          host: 192.168.0.88
          api_token: someOtherApiToken
      
    • This change also required the introduction of a new CLI flag to specify which Servarr you wish to interact with: --servarr-name. This corresponds directly to the value of the name field in your configuration. If you did not specify a name in the configuration, then default names are provided for you corresponding to the Servarr; For example, if you defined two Radarr instances with no names, they will be named Radarr 1 and Radarr 2, respectively.
    • Omitting the --servarr-name flag with multi-instance configurations will default to using the first instance that appears in your config. For example, for the following configuration:
      sonarr:
        - host: 192.168.0.89
          api_token: someApiToken
      
        - host: 192.168.0.88
          api_token: someOtherApiToken
      
      Running managarr sonarr list series will default to interacting with the Sonarr instance at 192.168.0.89. This is the same as running managarr sonarr list series --servarr-name 'Sonarr 1'.
  • API tokens can now be fetched from files instead of needing to be hardcoded (#31). The following is an example config that loads the API token from a file:

    radarr:
      - host: 192.168.0.78
        api_token_file: /home/root/.config/radarr_token
    
  • Configurations now interpolate environment variables (#23). This allows you to load sensitive information from environment variables. For example, to load the API token from an environment variable, you can do the following:

    radarr:
      - host: 192.168.0.78
        api_token: ${MY_RADARR_API_TOKEN_ENV_VAR}
    

    This is available for all fields in the configuration file.

Security Updates

Miscellaneous

[–] aclarke@lemmy.world 1 points 1 year ago (1 children)

I saw that the PR was merged. Let me know when it's available and I'll add the nix-env -i managarr to the README

[–] aclarke@lemmy.world 1 points 1 year ago

Thanks for doing the legwork on this! I would definitely be a bit out of my depth on that PR without actually having Nix installed πŸ˜‚.

Once it's merged I'll update the README to mention the Nix installation method.

[–] aclarke@lemmy.world 1 points 1 year ago (4 children)

Sounds good, let me know! Also give me some links to track it too so I can also add it to the repo!

[–] aclarke@lemmy.world 1 points 1 year ago (6 children)

Given that I can't really see what would change in Managarr that would require additional changes in the Nix package, I see no reason not to have us both as maintainers, especially since I don't currently have Nix installed. (It's high up on my to-do list, don't worry! I know I'll like it!)

Are there any files that would need to be checked into the repo so we can maintain an official package for it?

view more: next β€Ί