AutonomousKoi

Introduction

AutonomousKoi is an open source software project to support media streamers. It's comparable to tools like StreamElements and StreamLabs but with a few key differences:

Installation - v0.0.11

Currently, all releases are considered experimental. Aspects of the program can change significantly between releases. If you have a version that's working for you, you should keep a copy of it in case a new version doesn't work properly for you.

Windows

📁 AutonomousKoi-win-v0.0.11.zip

Open the .zip file. Copy the ak and lib-crypto files to a folder on your hard drive. In the future there will be a proper installer.

Mac

📁 AutonomousKoi-mac-v0.0.11.dmg

Open the .dmg file. Copy AutonomousKoi.app to Applications.

Running AutonomousKoi

When you run the program, nothing will appear to happen. AutonomousKoi adds an icon to your system tray, near the clock.

The AutonomousKoi icon appearing with other icons in the Windows system tray

Clicking the icon will present a menu.

The AutonomousKoi popup menu showing Controls, Quit, program status, and Open data folder

Clicking Controls will open AutonomousKoi's controls in your web browser. Clicking Quit will tell AutonomousKoi to exit safely, saving changes.

For more details about modules, see Module Controls.

Support

Support is provided through a Discord server that features channels for general discussion, release announcements, and providing troubleshooting. Support is provided as time is available and the hope is that experts will emerge in the community to help.

Goals

Primary Goals

We'd like AutonomousKoi to remove streamer's dependence on third-party tools they can't control. It's not uncommon for SaaS providers to remove functionality from their products or move the functionality to a more expensive tier. Streamers don't control their data when it's held by third-party service providers. If the service provider experiences an outage some or all of the streamer's tools become unavailable. When the streamer controls their stream tools they control all of their stream.

Secondary Goals

We'd like AutonomousKoi to provide an ecosystem for artists and programmers to find work creating custom media and interactive elements for streamers. As a platform that is easy to extend and customize there are many opportunities to make it reflect the streamer's style and community.

Non-Goals

The AutonomousKoi project isn't itself trying to make money. In the future, it may form as a non-profit/not-for-profit organization, but there's no intent to profit through hosting or consulting. Project contributors are welcome to create custom content and enhancements for profit.

Technologies

Go

The core is built using Go, a high-performance, memory-managed, statically-typed language. Its focus on manageable concurrency is ideal for a system where the streamer, viewers, and other systems are all triggering events at the same time. By default it produces statically-compiled binaries which are trivial to distribute. It easily produces binaries for Windows, Mac, and Linux and AMD64 and ARM64 architectures.

Protocol Buffers

AutonomousKoi is intended to be modular and features components built in different languages with different ways of internally structuring data. Protocol buffers is an efficient system structuring data to be exchanged between heterogeneous systems. It generates code for representing, encoding, and decoding data for many languages.

TypeScript

Portions of the system must run in the browser. To reduce the potential for bugs we use the type safety features of TypeScript where JavaScript is required.

Web Components

Web Components provides a way to create reusable DOM elements with custom behavior. This is comparable to React though with much less automatic state management. In the future, Web Components may prove too cumbersome and a more substantial framework may be adopted.

WASM

In the future, we'd like to support extensibility through WASM. WASM would allow functionality to be built and provided separately and loaded as-needed. WASM also allows modules to be developed in a variety of languages instead of only Go.

License

AutonomousKoi is released under the MIT License. This is a permissive license that allows anyone to use and adapt the code, provided they include a copy of the license and proper attribution.