Originally created by: endernoke
[!IMPORTANT]
We're looking for feedback / suggestions for this planned feature! We believe that many developers and users would find plugin system helpful. You can either comment your thoughts or upvote this issue so we can prioritize its development. We also welcome designs and PR for this feature. See [#114] for a similar issue
Is your feature request related to a problem? Please describe.
Pretty ambitious feature, basically we can allow users to make and install their own mods or extensions to the app.
e.g. advanced brainrot defense system, AI autoreply etc.
Kinda like VSCode extensions.
Then we can publish these plugins as separate packages instead of packing everything into the base app. People will be able to dynamically select and install whatever they want to the CLI (and not be forced to download a ton of fancy stuff they don't really need)
Describe the solution you'd like
Have a plugins manager where users can install, enable/disable and configure all their plugins. Not sure how plugin support can be implemented but it is definitely possible as many tools have this feature.
Describe alternatives you've considered
Well you can fork the repo and directly make changes there, but this isn't scalable.
Additional context
Add any other context or screenshots about the feature request here.
Originally posted by: supreme-gg-gg
This is a great feature suggestion!!! I'd like to pin this because many people make instagram bots and micro services, would be great if we provide a generalized framework to connect those and facilitate customisation! Forking the repo also doesnt' allow you to share your extension with others. I think we either provide integration method for whatever the user builds (that's probably what you are referring to) or provide API library for user to build plugins that can be natively supported easily (more work for us, 😢 )
Originally posted by: endernoke
I'm suggesting kinda a combination of the two. We would refactor and strip down the chat interface into a microkernel architecture (like VS Code core) that provides easy integrations and maybe an API to let people make their own plugins/extensions. Then we move all the message formatting and commands stuff to extensions of our own.
Though I think Instagram CLI is mainly meant to be end user oriented, so making fully-automated Instagram bot / microservices is out of the scope (they can just use libraries like instagrapi to do what they want or we might build one ourselves in the future lmao).
Here's what I have in mind for the refactored project:
renderMessage,commandEntered).If we decide to follow this path we might want to expand this further for interacting with posts, profiles, etc. or develop their own independent architecture.
Originally posted by: endernoke
See also https://github.com/weechat/weechat, which is an extensible IRC terminal chat client. It could serve as an exampler for plugins architecture.