- Python 95%
- Makefile 3.5%
- Go Template 1.2%
- Shell 0.3%
|
Some checks are pending
TruffleHog / Scan for secrets (push) Waiting to run
closes #30 |
||
|---|---|---|
| .claude | ||
| .coily | ||
| .github/workflows | ||
| docs | ||
| eco_cycle_prep | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .python-version | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| Makefile | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
Banner: Steam header for Eco by Strange Loop Games. Used here for attribution; not my artwork.
eco-cycle-prep
End-to-end tooling for preparing a fresh cycle on my Eco
server, "Eco via Sirens". Map generation is one phase; the rest covers
source sync, community-intel aggregation from Discord, config tuning, mod
management, and the go-live announcements. Written as a set of
an argparse CLI in Python (eco_cycle_prep/cli.py) driven by Makefile + coily, with string.Template
markdown stubs for the two recurring announcement formats (the cross-server
ad on the main Eco Discord, and the longer post on the Sirens
#eco-configs channel).
The cycle workflow pulls the latest from the sibling config and mod repos,
regenerates a Discord digest of recent community input, rolls candidate
worldgen seeds against a checked-in WorldGenerator.eco, syncs mod code
(including eco-mods-public)
onto the game server, waits for the preview render, and posts
announcements. Discord channel IDs and API tokens are resolved from AWS SSM
at runtime.
This repo is part of a small family of public tooling around Eco, a multiplayer survival and simulation game. The official modkit lives at StrangeLoopGames/EcoModKit, modding docs are at docs.play.eco and wiki.play.eco/en/Modding, and Eco-DiscordLink/EcoDiscordPlugin is the canonical in-game to Discord chat relay.
About Eco
Eco is a multiplayer survival/simulation game by Strange Loop Games. Players collaborate to build a civilization on a shared procedurally generated planet and stop an incoming meteor, while an ecological simulation tracks the damage their extraction, pollution, and land use do to the biosphere. Kai's server, "Eco via Sirens", runs ~2-month cycles.
Commands
All dev verbs run through coily,
declared in .coily/coily.yaml. Coily delegates to
make targets, which call python -m eco_cycle_prep.cli <verb>. Run coily --list from inside this checkout to see every verb with its description.
coily prep --cycle=N— weekly prep: steamcmd update, git pulls on eco-configs + infrastructure, Discord digest of recent community input.coily brief --cycle=N --days=D— cycle-13-style brief: full cycle-N channel history + last D days of suggestions + suggestions-forum.coily forum-dump --days=D— standalone dump of the suggestions forum.coily roll --cycle=N [--seed=S]— roll a single worldgen seed end-to-end: set + push to eco-configs, sync configs + reset storage on kai-server, wait for the preview to stabilize (streamsjournalctl -u eco-serverwhile it boots), post the preview GIF to the current cycle channel. One roll per invocation; invoke again to roll the next seed.coily mods-sync— clone eco-mods + eco-mods-public on kai-server and copy them into the Eco install. Lockdown-gated (Network.eco in git must carry the private/password-protected values).coily mods-disable --names=A,B,C— rm mod folders from the server (ephemeral; prefer deleting from the eco-mods source repo).coily ad --cycle=N --start-ts=UNIX_TS— emit the main Eco Discord ad and sync Network.eco's DetailedDescription.coily sirens-post --cycle=N --start-ts=UNIX_TS— emit the Sirens #eco-configs channel post (longer, mod.io links).coily go-live— cycle launch:copy-configsto kai-server, then editNetwork.ecoON THE SERVER to set PublicServer=true + Password="", then restart. The git-tracked Network.eco always stays in its locked private state; going public is a runtime-only flip.
Templates for the two announcement formats live under
eco_cycle_prep/templates/. Server-specific branding (summary,
objective, location, code-mod descriptions) and per-cycle config
bullets live under rolls/_prep/ (gitignored).
Setup
uv sync
SSM parameters required (see agentic-os-kai/AGENTS.md for the full
inventory): /eco/server-id, /sirens-echo/discord-bot-token,
/discord/server-id, /discord/server-ad-invite,
/discord/channel/{cycle-current,eco-configs,suggestions,suggestions-forum},
/modio/api-key.
See also
- AGENTS.md - agent-facing operating rules.
- docs/FEATURES.md - inventory of what ships today.
- .coily/coily.yaml - allowlisted commands.
Cross-reference convention from coilysiren/agentic-os#59.
