Git Workflow
Push feature branches, create change proposals, and promote to production.
The Strayl CLI works on top of git. After running st init or st link, a git remote called strayl is added to your repository. All syncing happens through standard git operations with this remote.
Branches
Strayl uses two special branches:
| Branch | Purpose |
|---|---|
dev | The working branch — updated by the AI agent and by merged changes |
main | The production branch — updated only via st promote |
You work on feature branches (any branch other than dev or main) and use st push to propose changes.
st push
Push a feature branch to Strayl and create a change proposal.
st pushThis is the primary command for proposing changes. It:
- Pushes the current branch (or a specified branch) to the
straylremote - Creates a change proposal that appears in Manage → Updates in the web UI
Note: You cannot run
st pushonmainordev. Switch to a feature branch first.
Options
| Flag | Description |
|---|---|
--title <title> | Change proposal title (defaults to last commit message) |
--description <desc> | Longer description for the change |
--no-change | Just push the branch without creating a change proposal |
Examples
# Push current branch with auto-generated title
st push
# Push with a custom title
st push --title "Add dark mode toggle"
# Push without creating a proposal (bare branch push)
st push --no-changest pull
Pull the latest dev or main branch from Strayl into your local repository.
# Pull from dev (default)
st pull
# Pull from main
st pull mainThis runs git fetch strayl followed by git merge strayl/[branch]. Useful when the AI agent has made changes in the web UI and you want to continue locally.
st promote
Promote the dev branch to main, triggering a production deployment.
st promoteThis merges dev into main on the Strayl server. The production deployment is updated automatically.
Typical workflow
# 1. Pull the latest dev state
st pull
# 2. Create a feature branch
git checkout -b add-dark-mode
# 3. Make commits
git add .
git commit -m "Add dark mode toggle"
# 4. Push the branch and create a change proposal
st push --title "Add dark mode toggle"
# 5. Review the change in the browser, then approve it (merges into dev)
# 6. When ready to deploy to production
st promoteConflict resolution
If your change has conflicts with dev (shown as needs_restack status), you can restack it from the CLI:
st change <change-id> restackOr resolve it manually:
# Pull the latest dev
st pull
# Rebase your branch on dev
git rebase strayl/dev
# Re-push
st push