your-turn 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- your_turn-0.4.0/.gitignore +18 -0
- your_turn-0.4.0/LICENSE +21 -0
- your_turn-0.4.0/PKG-INFO +160 -0
- your_turn-0.4.0/README.md +148 -0
- your_turn-0.4.0/THIRD_PARTY_NOTICES.md +29 -0
- your_turn-0.4.0/config.toml +2 -0
- your_turn-0.4.0/docs/agents-snippet.md +39 -0
- your_turn-0.4.0/docs/configuration.md +198 -0
- your_turn-0.4.0/plugin/.codex-plugin/plugin.json +35 -0
- your_turn-0.4.0/plugin/assets/your-turn-dark.png +0 -0
- your_turn-0.4.0/plugin/assets/your-turn-light.png +0 -0
- your_turn-0.4.0/plugin/skills/your-turn-handoff/SKILL.md +87 -0
- your_turn-0.4.0/pyproject.toml +39 -0
- your_turn-0.4.0/scripts/design_fixture.py +89 -0
- your_turn-0.4.0/scripts/readme_screenshots.py +462 -0
- your_turn-0.4.0/src/yourturn/__init__.py +1 -0
- your_turn-0.4.0/src/yourturn/app.py +158 -0
- your_turn-0.4.0/src/yourturn/cli.py +122 -0
- your_turn-0.4.0/src/yourturn/config.py +17 -0
- your_turn-0.4.0/src/yourturn/engine.py +814 -0
- your_turn-0.4.0/src/yourturn/harness/__init__.py +1 -0
- your_turn-0.4.0/src/yourturn/harness/base.py +278 -0
- your_turn-0.4.0/src/yourturn/harness/claude.py +522 -0
- your_turn-0.4.0/src/yourturn/harness/codex.py +476 -0
- your_turn-0.4.0/src/yourturn/harness/cursor.py +460 -0
- your_turn-0.4.0/src/yourturn/heuristics.py +327 -0
- your_turn-0.4.0/src/yourturn/install.py +467 -0
- your_turn-0.4.0/src/yourturn/model.py +130 -0
- your_turn-0.4.0/src/yourturn/state.py +65 -0
- your_turn-0.4.0/src/yourturn/static/app-icon-dark-180.png +0 -0
- your_turn-0.4.0/src/yourturn/static/app-icon-dark-192.png +0 -0
- your_turn-0.4.0/src/yourturn/static/app-icon-dark-512.png +0 -0
- your_turn-0.4.0/src/yourturn/static/app-icon-light-180.png +0 -0
- your_turn-0.4.0/src/yourturn/static/app-icon-light-192.png +0 -0
- your_turn-0.4.0/src/yourturn/static/app-icon-light-512.png +0 -0
- your_turn-0.4.0/src/yourturn/static/app.css +809 -0
- your_turn-0.4.0/src/yourturn/static/app.js +1703 -0
- your_turn-0.4.0/src/yourturn/static/brand-leaf.webp +0 -0
- your_turn-0.4.0/src/yourturn/static/favicon-alert.ico +0 -0
- your_turn-0.4.0/src/yourturn/static/favicon-dark-alert.ico +0 -0
- your_turn-0.4.0/src/yourturn/static/favicon-dark.ico +0 -0
- your_turn-0.4.0/src/yourturn/static/favicon.ico +0 -0
- your_turn-0.4.0/src/yourturn/static/header-dark.webp +0 -0
- your_turn-0.4.0/src/yourturn/static/header-light.webp +0 -0
- your_turn-0.4.0/src/yourturn/static/icon-alert.svg +9 -0
- your_turn-0.4.0/src/yourturn/static/icon-dark-alert.svg +10 -0
- your_turn-0.4.0/src/yourturn/static/icon-dark.svg +10 -0
- your_turn-0.4.0/src/yourturn/static/icon.svg +9 -0
- your_turn-0.4.0/src/yourturn/static/index.html +342 -0
- your_turn-0.4.0/src/yourturn/static/navigation.js +21 -0
- your_turn-0.4.0/src/yourturn/static/state-sync.js +114 -0
- your_turn-0.4.0/src/yourturn/static/theme.js +46 -0
- your_turn-0.4.0/src/yourturn/static/tokens.css +147 -0
- your_turn-0.4.0/tests/basis.test.mjs +16 -0
- your_turn-0.4.0/tests/clipboard.test.mjs +39 -0
- your_turn-0.4.0/tests/conftest.py +93 -0
- your_turn-0.4.0/tests/fixtures/claude.jsonl +12 -0
- your_turn-0.4.0/tests/fixtures/codex-index.jsonl +1 -0
- your_turn-0.4.0/tests/fixtures/codex.jsonl +11 -0
- your_turn-0.4.0/tests/fixtures/cursor-header.json +44 -0
- your_turn-0.4.0/tests/fixtures/cursor.jsonl +5 -0
- your_turn-0.4.0/tests/header-motion.test.mjs +51 -0
- your_turn-0.4.0/tests/inbox_consumer.mjs +26 -0
- your_turn-0.4.0/tests/navigation.test.mjs +54 -0
- your_turn-0.4.0/tests/quiet.test.mjs +44 -0
- your_turn-0.4.0/tests/state-sync.test.mjs +112 -0
- your_turn-0.4.0/tests/test_app.py +214 -0
- your_turn-0.4.0/tests/test_claude_adapter.py +669 -0
- your_turn-0.4.0/tests/test_cli.py +72 -0
- your_turn-0.4.0/tests/test_config.py +26 -0
- your_turn-0.4.0/tests/test_cursor_adapter.py +463 -0
- your_turn-0.4.0/tests/test_demo_state.py +27 -0
- your_turn-0.4.0/tests/test_engine.py +767 -0
- your_turn-0.4.0/tests/test_formats.py +62 -0
- your_turn-0.4.0/tests/test_handoff_contract.py +29 -0
- your_turn-0.4.0/tests/test_heuristics.py +315 -0
- your_turn-0.4.0/tests/test_inbox_consumer.py +66 -0
- your_turn-0.4.0/tests/test_install.py +402 -0
- your_turn-0.4.0/tests/test_rollout.py +356 -0
- your_turn-0.4.0/tests/test_state.py +92 -0
- your_turn-0.4.0/tests/test_triage.py +59 -0
- your_turn-0.4.0/tests/theme.test.mjs +75 -0
- your_turn-0.4.0/tests/triage.test.mjs +54 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
.venv/
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.pyc
|
|
4
|
+
.pytest_cache/
|
|
5
|
+
docs/design
|
|
6
|
+
docs/verification.md
|
|
7
|
+
# Added by code-review-graph
|
|
8
|
+
.code-review-graph/
|
|
9
|
+
# Personal agent and editor setup
|
|
10
|
+
.claude/
|
|
11
|
+
.cursor/
|
|
12
|
+
.cursorrules
|
|
13
|
+
.mcp.json
|
|
14
|
+
/CLAUDE.md
|
|
15
|
+
.agentsroom/handoff-transcript-*.txt
|
|
16
|
+
.agentsroom/handoff-summary-*.md
|
|
17
|
+
.agentsroom/fork-context-*.txt
|
|
18
|
+
.agentsroom/transfer-context-*.txt
|
your_turn-0.4.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Martin Gomola
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
your_turn-0.4.0/PKG-INFO
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: your-turn
|
|
3
|
+
Version: 0.4.0
|
|
4
|
+
Summary: An inbox for your coding agents. See which chat is waiting on you, what each one produced, and what to do next.
|
|
5
|
+
Project-URL: Homepage, https://github.com/martin-gomola/your-turn
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
License-File: LICENSE
|
|
8
|
+
Requires-Python: >=3.11
|
|
9
|
+
Requires-Dist: fastapi>=0.110
|
|
10
|
+
Requires-Dist: uvicorn>=0.29
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
|
|
13
|
+
<div align="center">
|
|
14
|
+
|
|
15
|
+
# Your Turn
|
|
16
|
+
|
|
17
|
+
<p align="center"><strong>Your agents are fast. You're the queue.</strong></p>
|
|
18
|
+
|
|
19
|
+

|
|
20
|
+

|
|
21
|
+
|
|
22
|
+
[Your inbox](#your-inbox) · [Quick start](#quick-start) · [Privacy](#privacy) ·
|
|
23
|
+
[Why install the handoff](#why-install-the-handoff) · [Docs](#docs)
|
|
24
|
+
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
When Codex, Claude Code, and Cursor run side by side, the slow part is your attention. The chat blocked on you sits in a window you are not looking at, and every answer is a long log.
|
|
28
|
+
|
|
29
|
+
## Your inbox
|
|
30
|
+
|
|
31
|
+
<div align="center">
|
|
32
|
+
|
|
33
|
+
<img src="docs/images/desktop.png?v=1" width="800" alt="Your Turn dark inbox in Focus Mode, with Codex, Claude Code, and Cursor chats grouped by status">
|
|
34
|
+
|
|
35
|
+
<sub>Made-up demo chats from <code>make screenshots</code>, not real session data.</sub>
|
|
36
|
+
|
|
37
|
+
</div>
|
|
38
|
+
|
|
39
|
+
<details>
|
|
40
|
+
<summary>See the inbox beside a chat</summary>
|
|
41
|
+
|
|
42
|
+
<img src="docs/images/in-codex.png?v=1" width="800" alt="Codex chat beside the Your Turn dark inbox in Focus Mode">
|
|
43
|
+
|
|
44
|
+
</details>
|
|
45
|
+
|
|
46
|
+
<details>
|
|
47
|
+
<summary>Watch a chat move into Needs you</summary>
|
|
48
|
+
|
|
49
|
+
<img src="docs/images/demo.gif?v=1" width="800" alt="A chat moves into Needs you when its question arrives, then opens beside the inbox">
|
|
50
|
+
|
|
51
|
+
</details>
|
|
52
|
+
<br>
|
|
53
|
+
|
|
54
|
+
**Your Turn** is not another orchestrator, IDE wrapper, or cloud dashboard. It is a read-only, zero-config local inbox on `localhost:8787`. It reads the JSONL logs your agents already write and the local Cursor chat database. It answers three questions at a glance:
|
|
55
|
+
|
|
56
|
+
- ⏳ **Who is waiting on you?**<br>
|
|
57
|
+
Questions, pending approvals, and unreviewed results, ordered by how long they have waited.<br>
|
|
58
|
+
- ✅ **Can you trust the result without reading the log?**<br>
|
|
59
|
+
`Check failed` and `Edits unchecked` badges tied to the latest code edit.<br>
|
|
60
|
+
- ➡️ **What is the exact next step?**<br>
|
|
61
|
+
One line per chat, with one click to open or resume it in its app.<br>
|
|
62
|
+
|
|
63
|
+
Your Turn runs on your machine. It does not take over agent processes, run a background service, or send chat data to the cloud. It uses no cloud account or extra agent permissions.
|
|
64
|
+
|
|
65
|
+
## Quick start
|
|
66
|
+
|
|
67
|
+
You need Python 3.11+, [`uv`](https://docs.astral.sh/uv/), and Codex, Claude Code, or Cursor. Without `uv`, install it first with `brew install uv` or [uv's installer](https://docs.astral.sh/uv/getting-started/installation/).
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
uvx your-turn install
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
`install` adds the Your Turn handoff instructions to the agent apps it finds, then starts the inbox. Restart those agent apps, then open [http://localhost:8787](http://localhost:8787).
|
|
74
|
+
|
|
75
|
+
To start the inbox later, run:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
uvx your-turn serve
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
The server binds to loopback only (`127.0.0.1`). To check or remove the handoff, run `uvx your-turn doctor` or `uvx your-turn uninstall`.
|
|
82
|
+
|
|
83
|
+
`uvx your-turn` runs the [PyPI release](https://pypi.org/project/your-turn/), which is built from a Git tag by GitHub Actions. `uvx your-turn@latest` picks up a newer release. To pin a version, use `uvx your-turn@0.4.0`, or install straight from its tag with `uvx --from git+https://github.com/martin-gomola/your-turn@v0.4.0 your-turn`.
|
|
84
|
+
|
|
85
|
+
### With Nix
|
|
86
|
+
|
|
87
|
+
The repository is a flake, with dependencies pinned in `flake.lock`. This starts the inbox without changing any agent app:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
nix run github:martin-gomola/your-turn
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Only `install` and `uninstall` change agent app folders. To see what `install` would touch, run `nix run github:martin-gomola/your-turn -- doctor` first. To skip it, add the handoff by hand from [docs/agents-snippet.md](./docs/agents-snippet.md), or print the Cursor rule with `nix run github:martin-gomola/your-turn -- cursor-rule`. `nix profile install github:martin-gomola/your-turn` puts `your-turn` on your `PATH`. To pin a release, use `github:martin-gomola/your-turn/v0.4.0`.
|
|
94
|
+
|
|
95
|
+
## Privacy
|
|
96
|
+
|
|
97
|
+
- **Local only.** The server binds to `127.0.0.1`. It does not send session data anywhere.
|
|
98
|
+
- **Read-only session access.** Your Turn reads agent logs and Cursor's local chat database. It never edits them, starts or answers chats, or approves actions.
|
|
99
|
+
- **Small local state file.** `~/.your-turn/state.json` stores seen results and dismissed reminders so they stay in sync across browsers. The browser keeps a local backup.
|
|
100
|
+
- **No account or setup file.** Your Turn finds existing chats and leaves out sub-agents, headless runs, and abandoned chats.
|
|
101
|
+
|
|
102
|
+
## Why install the handoff?
|
|
103
|
+
|
|
104
|
+
<details>
|
|
105
|
+
<summary>See how the handoff keeps finished chats out of Needs you</summary>
|
|
106
|
+
|
|
107
|
+
Agents often end with a polite question such as “Would you like me to update the docs?” Your Turn can read that as a question waiting on you, even when the work is done. The handoff asks the agent to end with an `Outcome` and a `Next step`, so the inbox can show a clear result.
|
|
108
|
+
|
|
109
|
+
Without the handoff:
|
|
110
|
+
|
|
111
|
+
```text
|
|
112
|
+
I refactored the token refresh logic and ran pytest. All 12 tests passed.
|
|
113
|
+
Would you like me to update the docs or commit the changes?
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
With the handoff:
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
I refactored the token refresh logic and ran pytest. All 12 tests passed.
|
|
120
|
+
|
|
121
|
+
**Outcome:** Token refresh is refactored and all 12 tests pass.
|
|
122
|
+
|
|
123
|
+
**Next step:** none
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
If an agent needs a decision, answer, review, or approval, `Next step` names it. See the full format in [docs/configuration.md](./docs/configuration.md#your-turn-handoff).
|
|
127
|
+
|
|
128
|
+
</details>
|
|
129
|
+
|
|
130
|
+
## Docs
|
|
131
|
+
|
|
132
|
+
| Guide | What it covers |
|
|
133
|
+
| --- | --- |
|
|
134
|
+
| [docs/harnesses.md](./docs/harnesses.md) | Data sources by OS, supported apps, inbox states, checks, and limits |
|
|
135
|
+
| [docs/configuration.md](./docs/configuration.md) | CLI commands and flags, app setup, handoff format, and development |
|
|
136
|
+
| [DESIGN.md](./DESIGN.md) | UI design contract and references |
|
|
137
|
+
| [docs/agents-snippet.md](./docs/agents-snippet.md) | Handoff format to add to agent instructions by hand |
|
|
138
|
+
|
|
139
|
+
## Run from a clone
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
git clone https://github.com/martin-gomola/your-turn.git
|
|
143
|
+
cd your-turn
|
|
144
|
+
make install
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
`make install` sets up the handoff from this checkout and starts the inbox. Open [http://localhost:8787](http://localhost:8787). Later, from the same folder:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
make up # start the inbox in the background
|
|
151
|
+
make down # stop it
|
|
152
|
+
make doctor # check the handoff without changing it
|
|
153
|
+
make test # run the test suite
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
See [docs/configuration.md](./docs/configuration.md#development) for all `make` targets and API routes.
|
|
157
|
+
|
|
158
|
+
## License
|
|
159
|
+
|
|
160
|
+
[MIT](./LICENSE). Third-party icons and artwork are listed in [THIRD_PARTY_NOTICES.md](./THIRD_PARTY_NOTICES.md).
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# Your Turn
|
|
4
|
+
|
|
5
|
+
<p align="center"><strong>Your agents are fast. You're the queue.</strong></p>
|
|
6
|
+
|
|
7
|
+

|
|
8
|
+

|
|
9
|
+
|
|
10
|
+
[Your inbox](#your-inbox) · [Quick start](#quick-start) · [Privacy](#privacy) ·
|
|
11
|
+
[Why install the handoff](#why-install-the-handoff) · [Docs](#docs)
|
|
12
|
+
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
When Codex, Claude Code, and Cursor run side by side, the slow part is your attention. The chat blocked on you sits in a window you are not looking at, and every answer is a long log.
|
|
16
|
+
|
|
17
|
+
## Your inbox
|
|
18
|
+
|
|
19
|
+
<div align="center">
|
|
20
|
+
|
|
21
|
+
<img src="docs/images/desktop.png?v=1" width="800" alt="Your Turn dark inbox in Focus Mode, with Codex, Claude Code, and Cursor chats grouped by status">
|
|
22
|
+
|
|
23
|
+
<sub>Made-up demo chats from <code>make screenshots</code>, not real session data.</sub>
|
|
24
|
+
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
<details>
|
|
28
|
+
<summary>See the inbox beside a chat</summary>
|
|
29
|
+
|
|
30
|
+
<img src="docs/images/in-codex.png?v=1" width="800" alt="Codex chat beside the Your Turn dark inbox in Focus Mode">
|
|
31
|
+
|
|
32
|
+
</details>
|
|
33
|
+
|
|
34
|
+
<details>
|
|
35
|
+
<summary>Watch a chat move into Needs you</summary>
|
|
36
|
+
|
|
37
|
+
<img src="docs/images/demo.gif?v=1" width="800" alt="A chat moves into Needs you when its question arrives, then opens beside the inbox">
|
|
38
|
+
|
|
39
|
+
</details>
|
|
40
|
+
<br>
|
|
41
|
+
|
|
42
|
+
**Your Turn** is not another orchestrator, IDE wrapper, or cloud dashboard. It is a read-only, zero-config local inbox on `localhost:8787`. It reads the JSONL logs your agents already write and the local Cursor chat database. It answers three questions at a glance:
|
|
43
|
+
|
|
44
|
+
- ⏳ **Who is waiting on you?**<br>
|
|
45
|
+
Questions, pending approvals, and unreviewed results, ordered by how long they have waited.<br>
|
|
46
|
+
- ✅ **Can you trust the result without reading the log?**<br>
|
|
47
|
+
`Check failed` and `Edits unchecked` badges tied to the latest code edit.<br>
|
|
48
|
+
- ➡️ **What is the exact next step?**<br>
|
|
49
|
+
One line per chat, with one click to open or resume it in its app.<br>
|
|
50
|
+
|
|
51
|
+
Your Turn runs on your machine. It does not take over agent processes, run a background service, or send chat data to the cloud. It uses no cloud account or extra agent permissions.
|
|
52
|
+
|
|
53
|
+
## Quick start
|
|
54
|
+
|
|
55
|
+
You need Python 3.11+, [`uv`](https://docs.astral.sh/uv/), and Codex, Claude Code, or Cursor. Without `uv`, install it first with `brew install uv` or [uv's installer](https://docs.astral.sh/uv/getting-started/installation/).
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
uvx your-turn install
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
`install` adds the Your Turn handoff instructions to the agent apps it finds, then starts the inbox. Restart those agent apps, then open [http://localhost:8787](http://localhost:8787).
|
|
62
|
+
|
|
63
|
+
To start the inbox later, run:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
uvx your-turn serve
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
The server binds to loopback only (`127.0.0.1`). To check or remove the handoff, run `uvx your-turn doctor` or `uvx your-turn uninstall`.
|
|
70
|
+
|
|
71
|
+
`uvx your-turn` runs the [PyPI release](https://pypi.org/project/your-turn/), which is built from a Git tag by GitHub Actions. `uvx your-turn@latest` picks up a newer release. To pin a version, use `uvx your-turn@0.4.0`, or install straight from its tag with `uvx --from git+https://github.com/martin-gomola/your-turn@v0.4.0 your-turn`.
|
|
72
|
+
|
|
73
|
+
### With Nix
|
|
74
|
+
|
|
75
|
+
The repository is a flake, with dependencies pinned in `flake.lock`. This starts the inbox without changing any agent app:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
nix run github:martin-gomola/your-turn
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Only `install` and `uninstall` change agent app folders. To see what `install` would touch, run `nix run github:martin-gomola/your-turn -- doctor` first. To skip it, add the handoff by hand from [docs/agents-snippet.md](./docs/agents-snippet.md), or print the Cursor rule with `nix run github:martin-gomola/your-turn -- cursor-rule`. `nix profile install github:martin-gomola/your-turn` puts `your-turn` on your `PATH`. To pin a release, use `github:martin-gomola/your-turn/v0.4.0`.
|
|
82
|
+
|
|
83
|
+
## Privacy
|
|
84
|
+
|
|
85
|
+
- **Local only.** The server binds to `127.0.0.1`. It does not send session data anywhere.
|
|
86
|
+
- **Read-only session access.** Your Turn reads agent logs and Cursor's local chat database. It never edits them, starts or answers chats, or approves actions.
|
|
87
|
+
- **Small local state file.** `~/.your-turn/state.json` stores seen results and dismissed reminders so they stay in sync across browsers. The browser keeps a local backup.
|
|
88
|
+
- **No account or setup file.** Your Turn finds existing chats and leaves out sub-agents, headless runs, and abandoned chats.
|
|
89
|
+
|
|
90
|
+
## Why install the handoff?
|
|
91
|
+
|
|
92
|
+
<details>
|
|
93
|
+
<summary>See how the handoff keeps finished chats out of Needs you</summary>
|
|
94
|
+
|
|
95
|
+
Agents often end with a polite question such as “Would you like me to update the docs?” Your Turn can read that as a question waiting on you, even when the work is done. The handoff asks the agent to end with an `Outcome` and a `Next step`, so the inbox can show a clear result.
|
|
96
|
+
|
|
97
|
+
Without the handoff:
|
|
98
|
+
|
|
99
|
+
```text
|
|
100
|
+
I refactored the token refresh logic and ran pytest. All 12 tests passed.
|
|
101
|
+
Would you like me to update the docs or commit the changes?
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
With the handoff:
|
|
105
|
+
|
|
106
|
+
```text
|
|
107
|
+
I refactored the token refresh logic and ran pytest. All 12 tests passed.
|
|
108
|
+
|
|
109
|
+
**Outcome:** Token refresh is refactored and all 12 tests pass.
|
|
110
|
+
|
|
111
|
+
**Next step:** none
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
If an agent needs a decision, answer, review, or approval, `Next step` names it. See the full format in [docs/configuration.md](./docs/configuration.md#your-turn-handoff).
|
|
115
|
+
|
|
116
|
+
</details>
|
|
117
|
+
|
|
118
|
+
## Docs
|
|
119
|
+
|
|
120
|
+
| Guide | What it covers |
|
|
121
|
+
| --- | --- |
|
|
122
|
+
| [docs/harnesses.md](./docs/harnesses.md) | Data sources by OS, supported apps, inbox states, checks, and limits |
|
|
123
|
+
| [docs/configuration.md](./docs/configuration.md) | CLI commands and flags, app setup, handoff format, and development |
|
|
124
|
+
| [DESIGN.md](./DESIGN.md) | UI design contract and references |
|
|
125
|
+
| [docs/agents-snippet.md](./docs/agents-snippet.md) | Handoff format to add to agent instructions by hand |
|
|
126
|
+
|
|
127
|
+
## Run from a clone
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
git clone https://github.com/martin-gomola/your-turn.git
|
|
131
|
+
cd your-turn
|
|
132
|
+
make install
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
`make install` sets up the handoff from this checkout and starts the inbox. Open [http://localhost:8787](http://localhost:8787). Later, from the same folder:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
make up # start the inbox in the background
|
|
139
|
+
make down # stop it
|
|
140
|
+
make doctor # check the handoff without changing it
|
|
141
|
+
make test # run the test suite
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
See [docs/configuration.md](./docs/configuration.md#development) for all `make` targets and API routes.
|
|
145
|
+
|
|
146
|
+
## License
|
|
147
|
+
|
|
148
|
+
[MIT](./LICENSE). Third-party icons and artwork are listed in [THIRD_PARTY_NOTICES.md](./THIRD_PARTY_NOTICES.md).
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Third-party assets
|
|
2
|
+
|
|
3
|
+
The Settings, menu, inbox and question-message glyphs in the HTML sprite are from [Tabler Icons](https://github.com/tabler/tabler-icons), retrieved 30 October 2026. They are distributed under the MIT license:
|
|
4
|
+
|
|
5
|
+
MIT License
|
|
6
|
+
|
|
7
|
+
Copyright (c) 2020-2026 Paweł Kuna
|
|
8
|
+
|
|
9
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
10
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
11
|
+
in the Software without restriction, including without limitation the rights
|
|
12
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
14
|
+
furnished to do so, subject to the following conditions:
|
|
15
|
+
|
|
16
|
+
The above copyright notice and this permission notice shall be included in all
|
|
17
|
+
copies or substantial portions of the Software.
|
|
18
|
+
|
|
19
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
20
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
21
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
22
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
23
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
25
|
+
SOFTWARE.
|
|
26
|
+
|
|
27
|
+
The decorative header scenes and leaf artwork were generated for this project with AI image generation and are not third-party assets.
|
|
28
|
+
|
|
29
|
+
The footer's GitHub mark is GitHub's logo, used only to link to this project's repository. Its path comes from [Simple Icons](https://github.com/simple-icons/simple-icons) (CC0 1.0).
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Handoff format without automatic setup
|
|
2
|
+
|
|
3
|
+
Your Turn supports Codex, Claude Code, and Cursor. `your-turn install` adds the handoff instructions
|
|
4
|
+
to each app in its native way. If you want to set them up yourself, paste the block below into an
|
|
5
|
+
instruction file that your agent reads, such as `~/.codex/AGENTS.md` for Codex or a repository's
|
|
6
|
+
applicable instruction file.
|
|
7
|
+
|
|
8
|
+
The handoff is plain text; Your Turn reads it from the agent's final answer to build recaps and find
|
|
9
|
+
next steps.
|
|
10
|
+
|
|
11
|
+
```markdown
|
|
12
|
+
## Your Turn handoff
|
|
13
|
+
|
|
14
|
+
I run many agent chats at once, across apps, and triage them in the Your Turn inbox. End every response
|
|
15
|
+
to me, on every turn, with these lines at the very top or the very bottom, as one group with no prose
|
|
16
|
+
between them, each on one line with a blank line between them (chat apps join adjacent lines into one
|
|
17
|
+
paragraph), as plain Markdown outside code blocks:
|
|
18
|
+
|
|
19
|
+
**Outcome:** <one sentence: what is now true, or what you found>
|
|
20
|
+
|
|
21
|
+
**Next step:** <none | answer: <question> | decide: <options> | review: <what to look at> | approve: <plan> | run: <command>>
|
|
22
|
+
|
|
23
|
+
**Recap:** <from the second turn on, 1-2 sentences under 400 characters: the chat's goal, what is settled, what is open>
|
|
24
|
+
|
|
25
|
+
**Decision:** <question> -> <chosen> (over <alternatives>). <reason>
|
|
26
|
+
|
|
27
|
+
Keep the labels and prefixes in English, even when you reply in another language, and start no other
|
|
28
|
+
line with them. Any step other than `none` puts the chat under Needs you; start it with one of the
|
|
29
|
+
prefixes above. A question I must react to also goes in the next step. When the task is done, write
|
|
30
|
+
exactly `Next step: none` and stop; an optional suggestion goes in the body, and never close with a
|
|
31
|
+
polite offer such as "Let me know if…" or "Should I also…?". Write a Decision line only for a
|
|
32
|
+
non-trivial trade-off (architecture, edge-case behavior, library or approach), one line each with `->`,
|
|
33
|
+
not for routine edits.
|
|
34
|
+
|
|
35
|
+
Keep the details short. Do not repeat the outcome or list changed files and test results. Edit files
|
|
36
|
+
with your app's native edit tool, not from the shell, so Your Turn sees them. Run the checks that cover
|
|
37
|
+
your last code edit (documentation-only edits need none), alone or last in a chain joined with `&&`; if
|
|
38
|
+
one fails, say so in the outcome, and if you cannot run it, make the next step `run: <command>`.
|
|
39
|
+
```
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
# Configuration
|
|
2
|
+
|
|
3
|
+
Commands, flags, the handoff install, and the handoff format. What each app records is in
|
|
4
|
+
[harnesses.md](./harnesses.md).
|
|
5
|
+
|
|
6
|
+
## Commands
|
|
7
|
+
|
|
8
|
+
| Command | What it does |
|
|
9
|
+
| --- | --- |
|
|
10
|
+
| `your-turn serve` | Starts the inbox on `http://localhost:8787` and runs until Ctrl+C |
|
|
11
|
+
| `your-turn install` | Sets up the handoff for each app it finds. Run in a terminal, it then starts the inbox, or says so when it is already running; from a script, or with input or output redirected, it exits |
|
|
12
|
+
| `your-turn uninstall` | Removes exactly what `install` added |
|
|
13
|
+
| `your-turn doctor` | Checks, without changing anything, whether the installed handoff matches this version |
|
|
14
|
+
| `your-turn cursor-rule` | Prints the [Cursor User Rule](#cursor-user-rule) to paste into Cursor, without changing anything |
|
|
15
|
+
|
|
16
|
+
## Flags and environment
|
|
17
|
+
|
|
18
|
+
| Flag | Commands | Default | Environment |
|
|
19
|
+
| --- | --- | --- | --- |
|
|
20
|
+
| `--port` | `serve` | `8787` | `PORT` for `make up` |
|
|
21
|
+
| `--codex-home` | all but `cursor-rule` | `~/.codex` | `CODEX_HOME` |
|
|
22
|
+
| `--claude-home` | all but `cursor-rule` | `~/.claude` | `CLAUDE_CONFIG_DIR` |
|
|
23
|
+
| `--cursor-home` | all but `cursor-rule` | `~/.cursor` | none |
|
|
24
|
+
| `--cursor-user-dir` | `serve` | `~/Library/Application Support/Cursor/User` on macOS, `~/.config/Cursor/User` on Linux, `AppData/Roaming/Cursor/User` on Windows | none |
|
|
25
|
+
| `--harness` | `install`, `uninstall`, `doctor` | every app whose folder exists | none |
|
|
26
|
+
|
|
27
|
+
`--harness` takes `codex`, `claude`, `cursor`, or `all`. The server always binds `127.0.0.1`.
|
|
28
|
+
`YOUR_TURN_REPO` tells a development install where your clone is when it is not at
|
|
29
|
+
`~/dev/your-turn`.
|
|
30
|
+
|
|
31
|
+
### History window
|
|
32
|
+
|
|
33
|
+
Set the history window in `config.toml` at the repository root, then run `make restart`:
|
|
34
|
+
|
|
35
|
+
```toml
|
|
36
|
+
history_days = 14
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
The inbox shows chats whose session file changed in that many days. Direct chat links still open
|
|
40
|
+
older chats.
|
|
41
|
+
|
|
42
|
+
### State file
|
|
43
|
+
|
|
44
|
+
`~/.your-turn/state.json` keeps which results you have seen and which reminders you dismissed, so
|
|
45
|
+
every browser and tab shows the same inbox. It is the only file Your Turn writes. Entries for chats
|
|
46
|
+
that leave the inbox are dropped.
|
|
47
|
+
|
|
48
|
+
Each browser also backs up this state in `localStorage`. It restores missing server marks after a
|
|
49
|
+
restart or lost state file, and retries local changes after a failed save. Dismiss and restore actions
|
|
50
|
+
carry timestamps; a newer restore wins over an older browser backup. Backups contain only chat keys,
|
|
51
|
+
seen times, and reminder identifiers, and are pruned to the current inbox. With storage blocked,
|
|
52
|
+
server sharing still works. To fully reset marks, clear both the server state file and browser site data.
|
|
53
|
+
|
|
54
|
+
## What `install` sets up
|
|
55
|
+
|
|
56
|
+
Everything goes into your own app folders, never into a project, so no repository gains a file or
|
|
57
|
+
a `.gitignore` entry:
|
|
58
|
+
|
|
59
|
+
| App | What `install` sets up | What `uninstall` removes |
|
|
60
|
+
| --- | --- | --- |
|
|
61
|
+
| Codex | The `your-turn` plugin from the `your-turn` marketplace, which holds the handoff skill. Without the Codex CLI, the skill in `~/.agents/skills/your-turn/SKILL.md` instead, worded for any app; Cursor reads that folder too, so it then keeps no copy of its own. Once the CLI is there, `install` adds the plugin and removes that copy | The plugin and its marketplace, and the shared skill |
|
|
62
|
+
| Claude Code | `~/.claude/skills/your-turn/SKILL.md` and a marked `your-turn` block in `~/.claude/CLAUDE.md` | The skill file and the block; the rest of `CLAUDE.md` stays |
|
|
63
|
+
| Cursor | `~/.cursor/skills/your-turn/SKILL.md` and the [rule](#cursor-user-rule) as a local plugin in `~/.cursor/plugins/local/your-turn` | The skill file and the plugin |
|
|
64
|
+
|
|
65
|
+
The handoff is plain text in the agent's answer, so nothing runs in the background and no app asks
|
|
66
|
+
for a permission. `install` rewrites its own skill files and block whenever their text differs from
|
|
67
|
+
this version, whatever version they name; running it again then changes nothing. A `SKILL.md` or a
|
|
68
|
+
`your-turn` plugin that Your Turn did not write, a symlinked one, and other files in those folders
|
|
69
|
+
are left alone by both commands. Both
|
|
70
|
+
also remove the `your-turn` MCP server that earlier versions registered. Restart the apps after
|
|
71
|
+
installing.
|
|
72
|
+
|
|
73
|
+
### Cursor User Rule
|
|
74
|
+
|
|
75
|
+
A saved skill is used only when the agent picks it. To apply the handoff in every Cursor Agent chat,
|
|
76
|
+
`install` saves the text below as an always-applied rule in a
|
|
77
|
+
[local plugin](https://cursor.com/docs/plugins#test-plugins-locally),
|
|
78
|
+
`~/.cursor/plugins/local/your-turn`. Cursor loads it after a restart or **Developer: Reload Window**,
|
|
79
|
+
and **Customize → Rules** then lists it.
|
|
80
|
+
|
|
81
|
+
On Enterprise plans, an admin can turn local plugins off, and they are off by default there. If the
|
|
82
|
+
rule is not listed after a reload, open **Customize → Rules**, add a **User Rule**, and paste the
|
|
83
|
+
text below (GitHub shows a copy button on the block):
|
|
84
|
+
|
|
85
|
+
````markdown
|
|
86
|
+
## Your Turn handoff
|
|
87
|
+
|
|
88
|
+
End every response to the user, on every turn, with this block at the very top or the very bottom: one
|
|
89
|
+
group of lines with no prose between them, each on one line with a blank line between them (chat apps
|
|
90
|
+
join adjacent lines into one paragraph), as plain Markdown outside code blocks.
|
|
91
|
+
|
|
92
|
+
- `**Outcome:**` one sentence: what is now true.
|
|
93
|
+
- `**Next step:**` `none`, `answer: …`, `decide: …`, `review: …`, `approve: …` or `run: …`. When the task
|
|
94
|
+
is done, write exactly `**Next step:** none` and stop. A question the user must react to goes here.
|
|
95
|
+
- `**Recap:**` from the second turn on: 1-2 sentences under 400 characters (goal, what is settled, what
|
|
96
|
+
is open).
|
|
97
|
+
- `**Decision:** <question> -> <chosen> (over <alternatives>). <reason>` only for a non-trivial trade-off
|
|
98
|
+
(architecture, edge-case behavior, library or approach), one line each.
|
|
99
|
+
|
|
100
|
+
Keep the labels and prefixes in English, even when you reply in another language, and start no other
|
|
101
|
+
line with them. An optional suggestion goes in the body; never close with a polite offer such as
|
|
102
|
+
"Let me know if…" or "Should I also…?".
|
|
103
|
+
Keep the labels (`Outcome:`, `Next step:`, `Recap:`, `Decision:`) and `Next step` prefixes in English even when replying in another language. Optional suggestions are not next steps: write `none`.
|
|
104
|
+
|
|
105
|
+
Example:
|
|
106
|
+
|
|
107
|
+
```markdown
|
|
108
|
+
**Outcome:** The login redirect bug is fixed and covered by a test.
|
|
109
|
+
|
|
110
|
+
**Next step:** none
|
|
111
|
+
|
|
112
|
+
**Recap:** Fixing login redirects; the fix and its test are in, nothing is open.
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
While working:
|
|
116
|
+
|
|
117
|
+
- Edit files with `StrReplace`, `Write` or `ApplyPatch`, not from the shell, so Your Turn sees them.
|
|
118
|
+
- After your last code edit, run the check that covers it, alone or last in a chain joined with `&&`;
|
|
119
|
+
if you cannot, make the next step `run: <command>`.
|
|
120
|
+
- Ask the user to choose with `AskQuestion`. The `your-turn` skill has the details.
|
|
121
|
+
````
|
|
122
|
+
|
|
123
|
+
To print exactly this text instead, without changing anything (on macOS, `| pbcopy` puts it on the
|
|
124
|
+
clipboard):
|
|
125
|
+
|
|
126
|
+
```sh
|
|
127
|
+
uvx your-turn cursor-rule
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Plain `your-turn cursor-rule` works when `your-turn` is on your PATH. Cursor keeps User Rules in its own settings, so `install` cannot
|
|
131
|
+
add one there. Whether Cursor loaded the plugin is not visible outside Cursor, so `doctor` reports
|
|
132
|
+
**rule loaded: unverified** even when the plugin is current. A `.cursor/rules` folder belongs to one
|
|
133
|
+
project and does not apply elsewhere.
|
|
134
|
+
|
|
135
|
+
### Checking the install
|
|
136
|
+
|
|
137
|
+
`your-turn doctor` compares each file with the text this version would write and reports **current**,
|
|
138
|
+
**missing**, **content mismatch**, or **unreadable**; run `install` to fix the last three. For Claude
|
|
139
|
+
Code it checks the skill and only the Your Turn block of `CLAUDE.md`, and shows nothing else from that
|
|
140
|
+
file. For Cursor it checks the skill and both files of the rule plugin. Codex keeps the plugin in
|
|
141
|
+
its own cache, so the plugin is **unverified**. Neither `doctor` nor
|
|
142
|
+
the saved files prove that an app has loaded the handoff into a chat.
|
|
143
|
+
|
|
144
|
+
| You want | Do this |
|
|
145
|
+
| --- | --- |
|
|
146
|
+
| Only the inbox, no handoff | Run only `serve`. Recaps fall back to the first paragraph of each answer and a guessed next step. |
|
|
147
|
+
| The handoff format without installing anything | Paste [agents-snippet.md](./agents-snippet.md) into the app's global instructions, such as `~/.codex/AGENTS.md`. |
|
|
148
|
+
| To develop Your Turn | Clone the repo and run `make install`. It runs `your-turn install` for each app it finds, with the Codex plugin from your checkout when the Codex CLI is installed, and starts the server in the background. |
|
|
149
|
+
|
|
150
|
+
## Handoff contract
|
|
151
|
+
|
|
152
|
+
Recaps come from the agent's final answer:
|
|
153
|
+
|
|
154
|
+
| If the final answer has | Your Turn shows |
|
|
155
|
+
| --- | --- |
|
|
156
|
+
| `**Outcome:**`, `**Next step:**`, and `**Recap:**` lines | Those lines as written |
|
|
157
|
+
| `**Decision:** <question> -> <chosen> (over <alternatives>). <reason>` lines | One decision each, with its options; `→` works too |
|
|
158
|
+
| `**Outcome:**` without `**Next step:**` | The outcome, marked **No next step** |
|
|
159
|
+
| No handoff lines | The first paragraph as the outcome, and a best-guess next step (Run, Review, or Answer) marked **Inferred**; with none found, **No handoff** |
|
|
160
|
+
|
|
161
|
+
- `**Outcome:**` is one sentence: what is now true.
|
|
162
|
+
- `**Next step:**` is `none`, `answer: …`, `review: …`, `approve: …`, or `run: …`.
|
|
163
|
+
- `**Recap:**` is added from the second turn on.
|
|
164
|
+
- Questions go through the app's question tool (`AskUserQuestion` in Claude Code, `AskQuestion` in
|
|
165
|
+
Cursor) with options, so they show under Needs you until answered.
|
|
166
|
+
|
|
167
|
+
Decisions that older chats logged through the `log_decision` tool still show. The full skill is
|
|
168
|
+
[plugin/skills/your-turn-handoff/SKILL.md](../plugin/skills/your-turn-handoff/SKILL.md).
|
|
169
|
+
|
|
170
|
+
## Development
|
|
171
|
+
|
|
172
|
+
| Command | Use it when |
|
|
173
|
+
| --- | --- |
|
|
174
|
+
| `make install` | First setup, or to update the handoff |
|
|
175
|
+
| `make doctor` | Check, without changing anything, whether the installed handoff is current |
|
|
176
|
+
| `make up` | Start the server in the background (`PORT=...` to change from 8787) |
|
|
177
|
+
| `make status` | Check whether it is running |
|
|
178
|
+
| `make logs` | Follow the server log |
|
|
179
|
+
| `make restart` | Pick up code or config changes |
|
|
180
|
+
| `make down` | Stop the server |
|
|
181
|
+
| `make test` | Run the test suite |
|
|
182
|
+
| `make screenshots` | Regenerate the README images from demo chats (needs Google Chrome and ffmpeg) |
|
|
183
|
+
|
|
184
|
+
| Route | Returns |
|
|
185
|
+
| --- | --- |
|
|
186
|
+
| `GET /api/inbox` | Recent chats with status, outcome, next step, and check state |
|
|
187
|
+
| `GET /api/threads/<key>` | Snapshot of one chat. `<key>` is `codex:<id>`, `claude:<id>`, or `cursor:<id>`; a bare id means Codex |
|
|
188
|
+
| `GET /api/stream?thread=<key>` | Server-sent events when that chat changes; without `thread`, inbox events |
|
|
189
|
+
|
|
190
|
+
```text
|
|
191
|
+
src/yourturn/ FastAPI server, session engine, and installer
|
|
192
|
+
src/yourturn/harness/ One adapter per app: Codex, Claude Code, Cursor
|
|
193
|
+
src/yourturn/static/ Dashboard HTML, CSS tokens, and JavaScript
|
|
194
|
+
plugin/ Codex plugin: manifest and the your-turn-handoff skill
|
|
195
|
+
tests/ Parser and API tests
|
|
196
|
+
scripts/ Demo-data screenshot and GIF generator for the README
|
|
197
|
+
docs/images/ README images
|
|
198
|
+
```
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "your-turn",
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "Read-only inbox view of what the current Codex chat is doing and the decisions it makes.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Martin Gomola"
|
|
7
|
+
},
|
|
8
|
+
"license": "MIT",
|
|
9
|
+
"keywords": [
|
|
10
|
+
"inbox",
|
|
11
|
+
"agents",
|
|
12
|
+
"dashboard",
|
|
13
|
+
"decisions",
|
|
14
|
+
"observability"
|
|
15
|
+
],
|
|
16
|
+
"skills": "./skills/",
|
|
17
|
+
"interface": {
|
|
18
|
+
"displayName": "Your Turn",
|
|
19
|
+
"shortDescription": "See what the agent is doing and why",
|
|
20
|
+
"longDescription": "Ends every turn with short Outcome and Next step lines, and a Decision line for each real choice, that the local dashboard at http://localhost:8787 turns into an inbox of your chats.",
|
|
21
|
+
"developerName": "Martin Gomola",
|
|
22
|
+
"category": "Productivity",
|
|
23
|
+
"capabilities": [
|
|
24
|
+
"Instructions"
|
|
25
|
+
],
|
|
26
|
+
"composerIcon": "./assets/your-turn-light.png",
|
|
27
|
+
"composerIconDark": "./assets/your-turn-dark.png",
|
|
28
|
+
"defaultPrompt": [
|
|
29
|
+
"End your answers in the Your Turn handoff format."
|
|
30
|
+
],
|
|
31
|
+
"logo": "./assets/your-turn-light.png",
|
|
32
|
+
"logoDark": "./assets/your-turn-dark.png",
|
|
33
|
+
"brandColor": "#4F9A8B"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
Binary file
|
|
Binary file
|