2026-04-09 10:44:46 +02:00
2026-03-25 12:42:19 +01:00
2026-04-08 18:33:17 +02:00
2026-04-09 10:44:46 +02:00
2026-03-25 12:42:19 +01:00
2026-04-08 18:33:17 +02:00
2026-04-09 10:44:46 +02:00
2026-03-25 12:42:19 +01:00
2026-04-09 10:44:46 +02:00
2026-04-09 10:44:46 +02:00
2026-04-09 10:44:46 +02:00
2026-04-09 10:44:46 +02:00
2026-04-08 01:16:15 +02:00

Aether

aether is an external Tribes plugin that provides the aether@1 capability.

Getting Started

Install deps and run the test suite:

mix deps.get
mix test

Development

For local development alongside a Tribes checkout:

# Symlink into the host plugins directory once
cd /path/to/tribes
ln -s /path/to/tribes-plugin-aether plugins/aether

# Start the Tribes dev server
iex --sname dev -S mix phx.server

Then edit aether in its own repo. In development, the Tribes host watches symlinked external plugins and automatically:

  • runs mix compile for Elixir, HEEx, manifest, and migration changes
  • runs npm run build --prefix assets
  • reloads the plugin in the running Tribes VM
  • triggers a Phoenix browser reload after the rebuild finishes

That means the normal loop is:

cd /path/to/tribes-plugin-aether
mix deps.get
mix test

# in another terminal
cd /path/to/tribes
iex --sname dev -S mix phx.server

Project Structure

aether/
├── manifest.json
├── mix.exs
├── lib/
│   ├── aether/
│   │   ├── application.ex
│   │   └── plugin.ex
│   └── aether_web/
│       └── live/
├── assets/
│   ├── css/aether.css
│   ├── js/aether.js
│   ├── package.json
│   └── package-lock.json
├── priv/
└── test/

Manifest

manifest.json declares the plugin contract:

{
  "name": "aether",
  "version": "0.1.0",
  "entry_module": "Tribes.Plugins.Aether.Plugin",
  "host_api": "1",
  "otp_app": "aether",
  "provides": ["aether@1"],
  "requires": ["ecto@1", "phoenix@1"],
  "enhances_with": [],
  "assets": {
    "global_js": ["aether.js"],
    "global_css": ["aether.css"]
  }
}

See the host plugin docs in PLUGINS.md for the full manifest and runtime contract.

Building for Release

MIX_ENV=prod mix compile
npm run build --prefix assets

Guix packaging assembles the plugin artifact from the compiled BEAM output, priv/, and manifest.json. Enable it from the guix-tribes channel-side node configuration.

S
Description
Tribes Aether Plugin (Twitter/DMs/Chat)
Readme 795 KiB
Languages
Elixir 91.6%
Shell 3.6%
Nix 2.2%
Scheme 1.9%
JavaScript 0.5%
Other 0.2%