You can interact with MiGA through different interfaces. These interfaces have different purposes, but they also have some degree of overlap, because different users with different aims sometimes want to do the same thing. The API and the CLI are the most comprehensive and flexible interfaces, but the other two are friendlier to humans. MiGA is mostly written in Ruby, with an object-oriented approach, and all the interfaces are just thin layers atop the Ruby core. That means that you can write your own interfaces (or pieces) if you know how to talk to these Ruby objects. Sometimes I even use
irb, which is an interactive shell for Ruby, but that's mostly for debugging.