Monorepo-native support
trellis init now detects monorepos and creates per-package spec directories — every package gets its own coding conventions and tasks. To keep the command matrix from exploding alongside package count, the type-specific before-backend-dev / before-frontend-dev / check-backend / check-frontend are merged into single before-dev / check commands across 9 platforms.
More platforms
- GitHub Copilot —
--copilot - Windsurf —
--windsurf - Qoder —
--qoder - Factory Droid —
--droid
Codex now fully supported
- Codex SessionStart hook is enabled. Codex users get the same auto-injection as Claude Code users — no need to manually invoke
/startanymore. Task state, workflow, and guidelines are injected at session start. - Sub-agent definitions.
.codex/agents/now ships TOML-formatimplement/research/checkagents, semantically aligned with Claude Code’sAgenttool. - Shared skills layer. Codex writes to
.agents/skills/(the agentskills.io standard directory). The same output is read automatically by Cursor, Gemini CLI, GitHub Copilot, Amp, and Kimi Code — one Codex checkbox covers a wide range of tools.
Other improvements
- Custom spec template registry.
trellis init -r <source>pulls spec templates from a custom git repository (GitHub / GitLab / Bitbucket, including self-hosted GitLab via HTTPS or SSH) instead of the default marketplace. Teams can host their own coding conventions on internal git servers. - Re-init fast path.
trellis init --codexadds Codex to an existing project; baretrellis initshows an interactive menu. - Branch awareness. Sessions and journals carry git branch context, so parallel branches don’t get tangled.
- Claude Code statusline integration.
- Multi-agent pipeline. Supports worktree submodules and PR state tracking.
Notable fixes
- SessionStart payload size fix. Reduced from ~29 KB to ~7 KB, fixing a major silent bug where Claude Code was truncating task state on most projects.
- Windows. Statusline GBK encoding crash (thanks @xiangagou163) and
{{PYTHON_CMD}}placeholder resolution in Codexhooks.json.
- fix(update): allow rename migrations to target protected paths + warn on config parse failure
- fix(update): parse name from
.developerwhen creating migration task - fix(hooks): normalize
.current-taskpath refs across platforms (#130) - fix(hooks): correct
SubagentStopevent field names in ralph-loop (#152) - fix(opencode): make dispatch wait for child tasks (#147)
- fix(init): strip npm scope prefix from monorepo package directory names
- fix(init): rename “empty templates” to “from scratch” in template picker
- fix(scripts): preserve submodule status prefix in
start.py
Install & upgrade
- Full changelog: https://docs.trytrellis.app/changelog/v0.4.0
- Repo: https://github.com/mindfold-ai/Trellis
- Docs: https://docs.trytrellis.app