Iris
Iris is a highly configurable and flexible service for paging and messaging.
Install / Use
/learn @linkedin/IrisREADME
Iris

Iris core, API, UI and sender service. For third-party integration support, see iris-relay, a stateless proxy designed to sit at the edge of a production network and allow external traffic to pass through. We also have an Iris mobile app for iOS/Android, at the iris-mobile repo.
<p align="center"><img src="https://github.com/linkedin/iris/raw/master/docs/source/_static/demo.png" width="600"></p>Quick Start with Gitpod
Setup database
- remove
ONLY_FULL_GROUP_BYfrom MySQL configsql_modeor run mysqld in permisive mode (i.e.--sql_mode='') - create mysql schema:
mysql -u USER -p < ./db/schema_0.sql(WARNING: This will drop any existing tables) - import dummy data:
mysql -u USER -p -o iris < ./db/dummy_data.sql
dummy_data.sql contains the following entities:
- user
demowith passworddemo - team
demo_team - application
Autoalertswith key:a7a9d7657ac8837cd7dfed0b93f4b8b864007724d7fa21422c24f4ff0adb2e49
Setup dev environment
- create & source your virtualenv
- install build dependencies:
libssl-dev libxml2-dev libxslt1-dev libsasl2-dev python-dev libldap2-dev - run
pip install -e '.[dev,kazoo]' - edit ./configs/config.dev.yaml to setup database credential and other settings
To install iris with extra features, you can pass in feature flag with pip:
pip install -e '.[prometheus]'
For list of extra features, please see extras_require setting in setup.py.
Run everything
forego start
Run web server
make serve
Run sender
iris-sender configs/config.dev.yaml
Tests
Run tests:
make test # all tests, e2e + unit
make e2e # e2e tests
make unit # unit tests
Generate test coverage reports:
make e2e-cov
make unit-cov
Adding new plugins
- create the plugin file under
src/iris/pluginsdir - edit
src/iris/plugins/__init__.pyto add plugin module to__all__list
Related Skills
imsg
346.8kiMessage/SMS CLI for listing chats, history, and sending messages via Messages.app.
node-connect
346.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
oracle
346.8kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
lobster
346.8kLobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (s
