dkitchen 0.1.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.
dkitchen-0.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 917Dhj
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.
@@ -0,0 +1,148 @@
1
+ Metadata-Version: 2.4
2
+ Name: dkitchen
3
+ Version: 0.1.0
4
+ Summary: A multi-agent workflow for research repos, with the ding CLI for messaging and waking agent sessions
5
+ Author: 917Dhj
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/917Dhj/dkitchen
8
+ Project-URL: Documentation, https://github.com/917Dhj/dkitchen/blob/main/docs/ding.md
9
+ Project-URL: Repository, https://github.com/917Dhj/dkitchen
10
+ Project-URL: Issues, https://github.com/917Dhj/dkitchen/issues
11
+ Keywords: agents,multi-agent,codex,claude-code,workflow,research,tmux,cli
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: Science/Research
16
+ Classifier: Operating System :: POSIX
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3 :: Only
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
23
+ Classifier: Topic :: Software Development
24
+ Requires-Python: >=3.10
25
+ Description-Content-Type: text/markdown
26
+ License-File: LICENSE
27
+ Requires-Dist: websocket-client<2,>=1.9
28
+ Provides-Extra: dev
29
+ Requires-Dist: pytest>=8; extra == "dev"
30
+ Dynamic: license-file
31
+
32
+ # dkitchen
33
+
34
+ **English** | [็ฎ€ไฝ“ไธญๆ–‡](https://github.com/917Dhj/dkitchen/blob/main/README.zh-CN.md)
35
+
36
+ **You decide what to cook. Your agents run the kitchen.** ๐Ÿง‘โ€๐Ÿณ
37
+
38
+ dkitchen is the multi-agent workflow I use every day to run my research repo. It gives a set of Claude Code and Codex sessions fixed stations, a shared way to hand off work through GitHub issues, clear rules for when to stop and ask you, and the tools that tie it together. You keep the decisions only you can make: what to research, what to try, what to spend.
39
+
40
+ ## ๐Ÿฝ๏ธ Why a kitchen
41
+
42
+ AI agents made execution cheap. The bottleneck moved to you.
43
+
44
+ With one agent, you supervise every step. With several, you become the message bus: copying context between sessions, checking whether a job finished, remembering which session owns which task, approving small things all day. Your GPUs sit idle between runs because nobody noticed the last one ended. By evening you have touched everything and thought about nothing.
45
+
46
+ A Michelin kitchen solves the same problem. The head chef designs the menu and tastes the dishes. Everyone else has a station, every order is a ticket, and a bell rings when a dish is ready. The head chef never chops onions, and never loses track of the kitchen.
47
+
48
+ dkitchen sets up your agents the same way. You are the head chef.
49
+
50
+ ## ๐Ÿง‘โ€๐Ÿณ The kitchen
51
+
52
+ | Station | In a kitchen | What it does | Runs on |
53
+ | --- | --- | --- | --- |
54
+ | ๐Ÿ‘‘ **You** | Head chef | Choose the direction, approve designs and budgets, decide what the results mean for your paper. | You |
55
+ | ๐Ÿค– **Orchestrator** | Sous chef at the pass | Schedules tickets, GPUs, and concurrency. Relays messages, reviews and merges PRs, reports facts to you. | Claude Code ยท Claude Opus 5.5 |
56
+ | ๐Ÿค” **Designer** | Recipe developer | Writes tickets, designs methods and every piece of text a model will see, interprets results. | Claude Code ยท Claude Opus 5.5 |
57
+ | ๐Ÿ” **Verifier** | Taster | Checks facts against code and data before money is spent. Reports what it found and never makes the call. | Claude Code ยท Claude Sonnet 5.5 |
58
+ | ๐Ÿ”ช **Executors** | Line cooks | One fresh session per ticket, in its own worktree. Implements, runs, and reports on the ticket. | Codex ยท GPT-6.1 Sol |
59
+
60
+ Each station has written rules for what it owns, what it hands off, and when it must stop. When something fits no station, the agents ask you.
61
+
62
+ ## ๐ŸŽซ How a ticket moves through the kitchen
63
+
64
+ 1. **You and the designer agree on what to do.** The designer writes it up as a GitHub issue: the goal, the exact steps, and the budget the work may spend.
65
+ 2. **The verifier checks the ticket's premises** against the code and data: field names, dataset ranges, call counts, cost estimates.
66
+ 3. **The orchestrator dispatches it** to a new executor session and picks free GPUs.
67
+ 4. **The executor works and reports on the ticket.** Every comment opens with the same four lines: status, who it is waiting on, the key numbers, and what happens next. Long jobs start with `ding launch`; when the job exits, `ding` wakes the executor so it can read the output and continue.
68
+ 5. **Results go to the designer** for interpretation. The orchestrator reviews the PR, merges it, and logs what it did and why.
69
+ 6. **You read a short report** and make the next call.
70
+
71
+ Every decision, request, and result lives on a ticket, so any session (or you, a week later) can pick up the story from GitHub.
72
+
73
+ ## โœ‹ What stays with you
74
+
75
+ The rules write down which calls belong to the head chef:
76
+
77
+ - the research direction, how datasets are used, and what the paper claims;
78
+ - model runs, paid API calls, or service starts beyond what a ticket's approved budget covers.
79
+
80
+ Agents propose on these and wait. An approval only counts when it is in your own words. Neither the orchestrator nor the designer can approve on your behalf.
81
+
82
+ Everything else the kitchen handles on its own, by one rule: **if anyone would do it the same way, the agents do it. If the choice changes the results, the cost, or the direction, they stop and wait for you.**
83
+
84
+ This is what lets you walk away. While you are in class, asleep, or reading papers, an issue watcher wakes the orchestrator when an executor finishes a stage, gets stuck, or goes quiet; when you leave a comment; or when a PR opens. The orchestrator moves forward what is already approved and leaves a list of decisions for when you are back.
85
+
86
+ ## โš–๏ธ One pool of resources
87
+
88
+ A research repo has more resources than any single agent sees: GPUs on several servers, a shared model server, CPU time, an API budget, tokens, and hours in the day. In dkitchen the orchestrator, running on the strongest model you have, manages them as one pool.
89
+
90
+ - ๐Ÿ–ฅ๏ธ **Compute.** It schedules tickets across free GPUs and checks the shared model server's load before raising concurrency.
91
+ - ๐Ÿ’ฐ **Money.** Each ticket that runs models carries one approved budget for calls, cost, and GPU hours. Stages within the budget start right away, and anything beyond it comes back to you.
92
+ - ๐Ÿช™ **Tokens.** One session per ticket keeps each context small, and fact-checking runs on a cheaper model.
93
+ - โฑ๏ธ **Time.** Jobs wake their owner when they exit, so nothing waits for someone to look.
94
+
95
+ ## ๐Ÿงฐ The tools
96
+
97
+ ### ๐Ÿ›Ž๏ธ `ding`, the bell
98
+
99
+ `ding` passes messages between agent sessions and wakes a session when its long job ends.
100
+
101
+ ```bash
102
+ ding board # who is working on what, in this repo
103
+ ding send '#42' --from orchestrator --message-file note.md
104
+ ding launch train -- python train.py # run in tmux, wake me when it exits
105
+ ```
106
+
107
+ You can address a session by its UUID, its name, or a GitHub issue such as `'#42'`; `ding` finds the session that owns that ticket. On Linux, `ding board` also lists long-running processes that were started without `ding`, so you can spot jobs nobody will be woken for.
108
+
109
+ `ding` talks to Codex sessions through the Codex App Server. The full guide is in [docs/ding.md](https://github.com/917Dhj/dkitchen/blob/main/docs/ding.md).
110
+
111
+ ## ๐Ÿš€ Get started
112
+
113
+ ### Requirements
114
+
115
+ - Linux or another POSIX system, with `tmux`
116
+ - Python 3.10 or later
117
+ - A GitHub repo and the `gh` CLI
118
+ - Claude Code, and Codex with its App Server running under the same user
119
+
120
+ ### Install `ding`
121
+
122
+ ```bash
123
+ pipx install git+https://github.com/917Dhj/dkitchen.git
124
+ ```
125
+
126
+ ## โ“ FAQ
127
+
128
+ **Is it safe to let agents run unattended?**
129
+ They stop for anything that changes direction, results, or spending, and approvals only come from your own words on a ticket. Every action is a comment or a PR on GitHub, so you can audit the night's work over coffee.
130
+
131
+ **Will it fit my repo?**
132
+ The rules were written for computational research, and most of them carry over to any repo with long-running jobs.
133
+
134
+ **Do I need both Claude Code and Codex?**
135
+ For now, yes. That is the combination I run every day.
136
+
137
+ **Isn't this too much process for a small project?**
138
+ Start with the orchestrator and executors, then add the designer and verifier when you want them.
139
+
140
+ ## ๐Ÿ’ก About
141
+
142
+ The *d* is my mark. dkitchen is how I run my own kitchen, written down so you can run yours. It started in my research repo, which moved 171 issues and 111 merged PRs through this workflow in its first four weeks.
143
+
144
+ The Michelin kitchen metaphor comes from Lauren Tan, known online as [Poteto](https://github.com/poteto). Poteto's way of running agents inspired much of this workflow. Thank you, Poteto. ๐Ÿ™
145
+
146
+ ## License
147
+
148
+ [MIT](https://github.com/917Dhj/dkitchen/blob/main/LICENSE)
@@ -0,0 +1,117 @@
1
+ # dkitchen
2
+
3
+ **English** | [็ฎ€ไฝ“ไธญๆ–‡](https://github.com/917Dhj/dkitchen/blob/main/README.zh-CN.md)
4
+
5
+ **You decide what to cook. Your agents run the kitchen.** ๐Ÿง‘โ€๐Ÿณ
6
+
7
+ dkitchen is the multi-agent workflow I use every day to run my research repo. It gives a set of Claude Code and Codex sessions fixed stations, a shared way to hand off work through GitHub issues, clear rules for when to stop and ask you, and the tools that tie it together. You keep the decisions only you can make: what to research, what to try, what to spend.
8
+
9
+ ## ๐Ÿฝ๏ธ Why a kitchen
10
+
11
+ AI agents made execution cheap. The bottleneck moved to you.
12
+
13
+ With one agent, you supervise every step. With several, you become the message bus: copying context between sessions, checking whether a job finished, remembering which session owns which task, approving small things all day. Your GPUs sit idle between runs because nobody noticed the last one ended. By evening you have touched everything and thought about nothing.
14
+
15
+ A Michelin kitchen solves the same problem. The head chef designs the menu and tastes the dishes. Everyone else has a station, every order is a ticket, and a bell rings when a dish is ready. The head chef never chops onions, and never loses track of the kitchen.
16
+
17
+ dkitchen sets up your agents the same way. You are the head chef.
18
+
19
+ ## ๐Ÿง‘โ€๐Ÿณ The kitchen
20
+
21
+ | Station | In a kitchen | What it does | Runs on |
22
+ | --- | --- | --- | --- |
23
+ | ๐Ÿ‘‘ **You** | Head chef | Choose the direction, approve designs and budgets, decide what the results mean for your paper. | You |
24
+ | ๐Ÿค– **Orchestrator** | Sous chef at the pass | Schedules tickets, GPUs, and concurrency. Relays messages, reviews and merges PRs, reports facts to you. | Claude Code ยท Claude Opus 5.5 |
25
+ | ๐Ÿค” **Designer** | Recipe developer | Writes tickets, designs methods and every piece of text a model will see, interprets results. | Claude Code ยท Claude Opus 5.5 |
26
+ | ๐Ÿ” **Verifier** | Taster | Checks facts against code and data before money is spent. Reports what it found and never makes the call. | Claude Code ยท Claude Sonnet 5.5 |
27
+ | ๐Ÿ”ช **Executors** | Line cooks | One fresh session per ticket, in its own worktree. Implements, runs, and reports on the ticket. | Codex ยท GPT-6.1 Sol |
28
+
29
+ Each station has written rules for what it owns, what it hands off, and when it must stop. When something fits no station, the agents ask you.
30
+
31
+ ## ๐ŸŽซ How a ticket moves through the kitchen
32
+
33
+ 1. **You and the designer agree on what to do.** The designer writes it up as a GitHub issue: the goal, the exact steps, and the budget the work may spend.
34
+ 2. **The verifier checks the ticket's premises** against the code and data: field names, dataset ranges, call counts, cost estimates.
35
+ 3. **The orchestrator dispatches it** to a new executor session and picks free GPUs.
36
+ 4. **The executor works and reports on the ticket.** Every comment opens with the same four lines: status, who it is waiting on, the key numbers, and what happens next. Long jobs start with `ding launch`; when the job exits, `ding` wakes the executor so it can read the output and continue.
37
+ 5. **Results go to the designer** for interpretation. The orchestrator reviews the PR, merges it, and logs what it did and why.
38
+ 6. **You read a short report** and make the next call.
39
+
40
+ Every decision, request, and result lives on a ticket, so any session (or you, a week later) can pick up the story from GitHub.
41
+
42
+ ## โœ‹ What stays with you
43
+
44
+ The rules write down which calls belong to the head chef:
45
+
46
+ - the research direction, how datasets are used, and what the paper claims;
47
+ - model runs, paid API calls, or service starts beyond what a ticket's approved budget covers.
48
+
49
+ Agents propose on these and wait. An approval only counts when it is in your own words. Neither the orchestrator nor the designer can approve on your behalf.
50
+
51
+ Everything else the kitchen handles on its own, by one rule: **if anyone would do it the same way, the agents do it. If the choice changes the results, the cost, or the direction, they stop and wait for you.**
52
+
53
+ This is what lets you walk away. While you are in class, asleep, or reading papers, an issue watcher wakes the orchestrator when an executor finishes a stage, gets stuck, or goes quiet; when you leave a comment; or when a PR opens. The orchestrator moves forward what is already approved and leaves a list of decisions for when you are back.
54
+
55
+ ## โš–๏ธ One pool of resources
56
+
57
+ A research repo has more resources than any single agent sees: GPUs on several servers, a shared model server, CPU time, an API budget, tokens, and hours in the day. In dkitchen the orchestrator, running on the strongest model you have, manages them as one pool.
58
+
59
+ - ๐Ÿ–ฅ๏ธ **Compute.** It schedules tickets across free GPUs and checks the shared model server's load before raising concurrency.
60
+ - ๐Ÿ’ฐ **Money.** Each ticket that runs models carries one approved budget for calls, cost, and GPU hours. Stages within the budget start right away, and anything beyond it comes back to you.
61
+ - ๐Ÿช™ **Tokens.** One session per ticket keeps each context small, and fact-checking runs on a cheaper model.
62
+ - โฑ๏ธ **Time.** Jobs wake their owner when they exit, so nothing waits for someone to look.
63
+
64
+ ## ๐Ÿงฐ The tools
65
+
66
+ ### ๐Ÿ›Ž๏ธ `ding`, the bell
67
+
68
+ `ding` passes messages between agent sessions and wakes a session when its long job ends.
69
+
70
+ ```bash
71
+ ding board # who is working on what, in this repo
72
+ ding send '#42' --from orchestrator --message-file note.md
73
+ ding launch train -- python train.py # run in tmux, wake me when it exits
74
+ ```
75
+
76
+ You can address a session by its UUID, its name, or a GitHub issue such as `'#42'`; `ding` finds the session that owns that ticket. On Linux, `ding board` also lists long-running processes that were started without `ding`, so you can spot jobs nobody will be woken for.
77
+
78
+ `ding` talks to Codex sessions through the Codex App Server. The full guide is in [docs/ding.md](https://github.com/917Dhj/dkitchen/blob/main/docs/ding.md).
79
+
80
+ ## ๐Ÿš€ Get started
81
+
82
+ ### Requirements
83
+
84
+ - Linux or another POSIX system, with `tmux`
85
+ - Python 3.10 or later
86
+ - A GitHub repo and the `gh` CLI
87
+ - Claude Code, and Codex with its App Server running under the same user
88
+
89
+ ### Install `ding`
90
+
91
+ ```bash
92
+ pipx install git+https://github.com/917Dhj/dkitchen.git
93
+ ```
94
+
95
+ ## โ“ FAQ
96
+
97
+ **Is it safe to let agents run unattended?**
98
+ They stop for anything that changes direction, results, or spending, and approvals only come from your own words on a ticket. Every action is a comment or a PR on GitHub, so you can audit the night's work over coffee.
99
+
100
+ **Will it fit my repo?**
101
+ The rules were written for computational research, and most of them carry over to any repo with long-running jobs.
102
+
103
+ **Do I need both Claude Code and Codex?**
104
+ For now, yes. That is the combination I run every day.
105
+
106
+ **Isn't this too much process for a small project?**
107
+ Start with the orchestrator and executors, then add the designer and verifier when you want them.
108
+
109
+ ## ๐Ÿ’ก About
110
+
111
+ The *d* is my mark. dkitchen is how I run my own kitchen, written down so you can run yours. It started in my research repo, which moved 171 issues and 111 merged PRs through this workflow in its first four weeks.
112
+
113
+ The Michelin kitchen metaphor comes from Lauren Tan, known online as [Poteto](https://github.com/poteto). Poteto's way of running agents inspired much of this workflow. Thank you, Poteto. ๐Ÿ™
114
+
115
+ ## License
116
+
117
+ [MIT](https://github.com/917Dhj/dkitchen/blob/main/LICENSE)
@@ -0,0 +1,47 @@
1
+ [build-system]
2
+ requires = ["setuptools>=77"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "dkitchen"
7
+ version = "0.1.0"
8
+ description = "A multi-agent workflow for research repos, with the ding CLI for messaging and waking agent sessions"
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ license = "MIT"
12
+ license-files = ["LICENSE"]
13
+ authors = [{name = "917Dhj"}]
14
+ keywords = ["agents", "multi-agent", "codex", "claude-code", "workflow", "research", "tmux", "cli"]
15
+ dependencies = ["websocket-client>=1.9,<2"]
16
+ classifiers = [
17
+ "Development Status :: 3 - Alpha",
18
+ "Environment :: Console",
19
+ "Intended Audience :: Developers",
20
+ "Intended Audience :: Science/Research",
21
+ "Operating System :: POSIX",
22
+ "Programming Language :: Python :: 3",
23
+ "Programming Language :: Python :: 3 :: Only",
24
+ "Programming Language :: Python :: 3.10",
25
+ "Programming Language :: Python :: 3.11",
26
+ "Programming Language :: Python :: 3.12",
27
+ "Topic :: Scientific/Engineering :: Artificial Intelligence",
28
+ "Topic :: Software Development",
29
+ ]
30
+
31
+ [project.optional-dependencies]
32
+ dev = ["pytest>=8"]
33
+
34
+ [project.scripts]
35
+ ding = "dkitchen.ding:main"
36
+
37
+ [project.urls]
38
+ Homepage = "https://github.com/917Dhj/dkitchen"
39
+ Documentation = "https://github.com/917Dhj/dkitchen/blob/main/docs/ding.md"
40
+ Repository = "https://github.com/917Dhj/dkitchen"
41
+ Issues = "https://github.com/917Dhj/dkitchen/issues"
42
+
43
+ [tool.setuptools.packages.find]
44
+ where = ["src"]
45
+
46
+ [tool.pytest.ini_options]
47
+ testpaths = ["tests"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1 @@
1
+ """dkitchen: a multi-agent workflow kit. The `ding` CLI lives in `dkitchen.ding`."""