nfo-cli 0.0.2 → 0.0.3
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.
- package/README.md +21 -10
- package/package.json +10 -2
package/README.md
CHANGED
|
@@ -13,34 +13,45 @@ A simple, "no fluff" orchestrator that doesn't overcomplicate your workflow. Tel
|
|
|
13
13
|
> I am not a musician. I do not take responsibility for any misused musical terminology!
|
|
14
14
|
|
|
15
15
|
## Why?
|
|
16
|
+
|
|
16
17
|
Honestly? Because I wanted to see if I could do it. Apart from that, the main reason why NFO exists is because I wanted an agent orchestrator that is not too bloated and allows you to see your agents without obfuscation. This is a learning project for me to understand agents better and to learn some (weird flavor of) React.
|
|
17
18
|
|
|
18
19
|
I wrote it by hand and with Claude - MVP was built almost entirely by Claude then I overtook and refactoring work along with new features are hand-built by me.
|
|
19
20
|
|
|
20
21
|
## How does it work?
|
|
21
22
|
|
|
22
|
-
|
|
23
|
+
### Installation
|
|
24
|
+
|
|
25
|
+
To get started with NFO just simply install it through `npm` (`brew` support planned for later)
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npm install -g nfo-cli
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
After that just start NFO in your project's folder and you are good to go!
|
|
23
32
|
|
|
24
33
|
```bash
|
|
25
34
|
nfo
|
|
26
35
|
```
|
|
27
36
|
|
|
28
|
-
This will create an **Orchestra** with your project's name and an **Orchestrator**. From here on out this Orchestra will be running until you kill it - this means that you can fire away your tasks and work on something else in the meantime.
|
|
37
|
+
This will create an **Orchestra** with your project's name and an **Orchestrator**. From here on out this Orchestra will be running until you kill it - this means that you can fire away your tasks and work on something else in the meantime. In the **Concert Hall**, in the top right corner, you can always see how many projects you have running at the moment. Each repository/project gets its own Orchestra and Orchestrator.
|
|
29
38
|
|
|
30
|
-
Everything that you have in your regular Claude session is available in your NFO session. Just ask your Orchestrator what you want to do, and it will do it for you by spawning several **Musicians** to tackle the task.
|
|
39
|
+
Everything that you have in your regular Claude session is available in your NFO session. Just ask your Orchestrator what you want to do, and it will do it for you by spawning several **Musicians** to tackle the task. The created Musicians will be placed in the **Auditorium** where you observe what they are doing or manage them.
|
|
31
40
|
|
|
32
|
-

|
|
33
42
|
|
|
34
43
|
These Musicians are either `Sonnet` or `Haiku` agents used to explore your codebase or code. Using **Hub-and-Spoke** the agents communicate with the Orchestrator and the Orchestrator decides the next steps. This structure allows the smarter model to keep its context clean and save cost by using other models at what they are best. They are all assigned to your Orchestra and you can freely move between them, see what they are doing or steer them by using `/btw`. You can also ask your Orchestrator to tell them what to do!
|
|
35
44
|
|
|
36
|
-

|
|
37
46
|
|
|
38
47
|
They can work in parallel or sequentially, depending on what the task demands. NFO leverages **worktrees** to keep your environment clean and avoid agents stepping on each other's toes.
|
|
39
48
|
|
|
40
49
|
### Notes, notes notes!
|
|
50
|
+
|
|
41
51
|
Notes are automatically generated by the Musicians and the Orchestrator to keep track of what has been done so far in the codebase, keep track of quirks and pitfalls. This serves as a quasi memory and helps the agents work in a continuous workflow.
|
|
42
52
|
|
|
43
53
|
### I like control
|
|
54
|
+
|
|
44
55
|
During the entirety of the process you decide how much you want to be in control. You want fully automated? You got it. You want to approve some non-whitelisted requests? Do it. Have granular control and approve everything by hand? Whatever floats your boat.
|
|
45
56
|
|
|
46
57
|
Communication happens through Tmux and an MCP server, the Ink based UI wraps Claude Code and provides it for you for interaction.
|
|
@@ -53,13 +64,12 @@ Communication happens through Tmux and an MCP server, the Ink based UI wraps Cla
|
|
|
53
64
|
|
|
54
65
|
You can dismantle your currently running Orchestras by simply running
|
|
55
66
|
|
|
56
|
-
```
|
|
67
|
+
```bash
|
|
57
68
|
nfo --kill <orchestra-id>
|
|
58
69
|
```
|
|
59
70
|
|
|
60
|
-
|
|
61
|
-
|
|
62
71
|
## Limitations
|
|
72
|
+
|
|
63
73
|
NFO is currently very experimental. There are many things that will change, improve or well, break.
|
|
64
74
|
|
|
65
75
|
Here are the currently known limitations and what should come in the future:
|
|
@@ -67,7 +77,7 @@ Here are the currently known limitations and what should come in the future:
|
|
|
67
77
|
- [ ] No package, NFO can only be run after being built (I am planning to ship through `npm` and `brew`)
|
|
68
78
|
- [ ] Worktrees are not always cleaned up properly
|
|
69
79
|
- [ ] Currently, the tools available to the musicians are not limited
|
|
70
|
-
- [ ] The notes section
|
|
80
|
+
- [ ] The notes section might not render properly at times
|
|
71
81
|
- [ ] Provide a simpler way to manage orchestras
|
|
72
82
|
- [ ] Performance can degrade over time
|
|
73
83
|
- [ ] The TUI can flicker because of the Node-PTY embedding
|
|
@@ -81,7 +91,7 @@ Here are the currently known limitations and what should come in the future:
|
|
|
81
91
|
- `bash` or `zsh`
|
|
82
92
|
- Linux or macOS (Windows via WSL only for now)
|
|
83
93
|
|
|
84
|
-
##
|
|
94
|
+
## Development
|
|
85
95
|
|
|
86
96
|
```
|
|
87
97
|
git clone https://github.com/javierfurus/nfo.git
|
|
@@ -114,6 +124,7 @@ Inside an orchestra, the Orchestrator can use these MCP tools:
|
|
|
114
124
|
To watch a Musician work just go to the sidebar (if not already there) by `Ctrl + g` and move the cursor to the Musician you want to observe. Press `Enter/Return` and you are in that session.
|
|
115
125
|
|
|
116
126
|
## Copyright
|
|
127
|
+
|
|
117
128
|
Claude is a trademark owned by Anthropic.
|
|
118
129
|
|
|
119
130
|
The Claw'd art was done by me. Maybe this was the _real_ reason this project exists so that I could to that.
|
package/package.json
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nfo-cli",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.0.3",
|
|
4
|
+
"description": "No Fluff Orchestra — a simple, fluff-free CLI multi-agent orchestrator",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"nfo": "./dist/cli.js"
|
|
8
8
|
},
|
|
9
|
+
"keywords": [
|
|
10
|
+
"claude",
|
|
11
|
+
"claude-code",
|
|
12
|
+
"ai",
|
|
13
|
+
"orchestraror",
|
|
14
|
+
"mcp",
|
|
15
|
+
"agents"
|
|
16
|
+
],
|
|
9
17
|
"scripts": {
|
|
10
18
|
"build": "tsc",
|
|
11
19
|
"dev": "tsx src/cli.ts",
|