Give recurring engineering work a shift.
Commit an agent skill next to your code. SecondShift runs it in a sandbox, with only the access your team approved, and keeps its results and cost.
Open source, self-hosted, and in beta. Bring your own model provider.
Quick start · Skill catalog · Docs · Website
secondshift-demo-v5-60s-4k-share.mp4
Define a job in .secondshift.yaml. This example runs a skill every Monday:
jobs:
engineering-briefing:
name: Monday engineering briefing
skill: examples/engineering-briefing/.agents/skills/engineering-briefing/SKILL.md
schedule: "0 9 * * 1"
requires:
mcps:
- binding: github
tools:
- search_pull_requests
- list_commits
notify:
- binding: engineering-reports- Write the skill with Claude Code, Codex, or any coding agent. Merge it through your normal review.
- Approve its access in the dashboard. A repository can ask for tools. Only a workspace owner can grant them.
- Run skills when you need them. Start a run yourself, set a schedule, or trigger it from another service. Each run executes in an isolated sandbox with approved access.
- Review the results in the dashboard, Slack, or a webhook. Every run records its Git commit, tool calls, and model cost.
- Checks happen even when nobody remembers. Investigate CI failures every morning or review release readiness every Friday.
- The whole team shares it. Jobs, schedules, and run history live in one place, not in one person's setup.
- Access is approved, not assumed. Credentials stay encrypted on your server and never reach the model or the sandbox.
- Spending has limits. Set per-run token and time limits and see what each run cost.
Compare SecondShift with Hermes Agent and other tools.
You need uv, Docker, and a model provider API key or a Claude Code or Codex subscription. Start Docker, then run:
release=https://github.com/piotrekno1/second-shift/releases
uv tool install --force --python 3.13 \
"$release/download/v0.1.0b8/secondshift-0.1.0b8-py3-none-any.whl"
secondshift upThe first start builds the agent image for subscriptions and takes a few
minutes. Use secondshift up --no-agents to skip it. Open the sign-in link
printed in the terminal. Then let SecondShift review its own documentation:
- Clone this repository:
git clone https://github.com/piotrekno1/second-shift.git - In Repositories, choose Add local repository and select the clone.
- In Models, add an API key or a Claude Code or Codex subscription.
- In Jobs, open Documentation drift and click Run now.
For one-off work, open a repository, click New task and write what to do. See the tasks guide.
Follow the Docker Compose deployment guide for a shared Linux server with HTTPS, a GitHub App, and backups. Then pick a task from the skill catalog and follow the task setup guide.
SecondShift serves an MCP server at /mcp. Your agent can check a
.secondshift.yaml before you commit it, start approved jobs, and read results.
It cannot approve access or see credentials. See the
MCP guide.
To run jobs through Claude Code or Codex subscriptions, see the agent subscriptions guide.
- Repository configuration: YAML syntax, schedules, and notifications
- Security model: what a run can reach and where secrets live
- Self-hosting: roles, run limits, runners, and storage
- Full documentation
Bug reports, docs fixes, and pull requests are welcome. See CONTRIBUTING.md. For larger changes, open an issue first.