fvtt-world-cli 1.1.1 → 1.2.0

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 CHANGED
@@ -1,27 +1,21 @@
1
1
  # World CLI for Foundry VTT
2
2
 
3
- [![Foundry VTT v13–v14](https://img.shields.io/badge/Foundry%20VTT-v13%E2%80%93v14-ff6400)](https://foundryvtt.com)
3
+ [![Supported Foundry versions](https://img.shields.io/endpoint?url=https%3A%2F%2Ffoundryshields.com%2Fversion%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2FDroiD16%2Ffvtt-world-cli%2Fmain%2Fpackages%2Ffoundry-module%2Fmodule.json)](https://foundryvtt.com)
4
+ [![npm](https://img.shields.io/npm/v/fvtt-world-cli)](https://www.npmjs.com/package/fvtt-world-cli)
5
+ [![npm downloads](https://img.shields.io/npm/dm/fvtt-world-cli)](https://www.npmjs.com/package/fvtt-world-cli)
6
+ [![license](https://img.shields.io/github/license/DroiD16/fvtt-world-cli)](LICENSE)
4
7
 
5
8
  Tell your AI agent what should change in your Foundry VTT world, and it happens in the live
6
9
  world, validated by Foundry, visible to your players immediately.
7
10
 
8
- ```text
9
- You → agent: "The scimitar in Valeros's inventory should burn targets on hit.
10
- Add a Flaming effect to it."
11
-
12
- agent → fvtt-world-cli:
13
- actor list --name Valeros find the character
14
- actor item list --name scimitar find the sword in their inventory
15
- actor item effect create … add the effect to it
16
-
17
- agent → you: "Done. Flaming effect added, already live in the world."
18
- ```
11
+ ![An AI agent adds lights and goblins to a Foundry tavern scene, shown before and after](https://raw.githubusercontent.com/DroiD16/fvtt-world-cli/main/publishing/media/cover.webp)
19
12
 
20
13
  Modern agents already understand requests like that. What they have lacked is a safe way into
21
- Foundry: driving the browser UI is brittle and token consuming, and editing world files on disk
22
- bypasses everything Foundry does to keep a world consistent. fvtt-world-cli is the missing bridge,
23
- a command line wired into your open GM session that performs every change through Foundry's own
24
- APIs, exactly as if a GM had made it in the UI.
14
+ Foundry. Driving the browser UI is brittle and uses extra tokens. Editing world files on disk
15
+ bypasses Foundry's validation.
16
+
17
+ World CLI for Foundry VTT connects your agent to your open GM session. Every change runs through
18
+ Foundry's own APIs, exactly as if a GM had made it in the UI.
25
19
 
26
20
  Two things it's not. It is not an AI game master: it does not run the game, it only edits the
27
21
  world when asked. And it includes no AI of its own: you connect the agent you already use, such as
@@ -40,12 +34,12 @@ A few asks it handles end to end:
40
34
  - "Turn the bestiary goblin into a flying one that throws dynamite for 2d6 damage, and add it to
41
35
  the scene."
42
36
 
43
- [Commands](docs/commands.md) maps the full surface.
37
+ See [Commands](docs/commands.md) for command families and usage examples.
44
38
 
45
39
  ## Setting up
46
40
 
47
- The simplest setup is one step: point your AI agent at this repository and ask it to set
48
- fvtt-world-cli up. Then follow its lead. It will most likely ask you to install the module in
41
+ The simplest setup is one step: point your AI agent at this repository and ask it to set up
42
+ World CLI for Foundry VTT. Then follow its lead. It will most likely ask you to install the module in
49
43
  Foundry and click *Pair* there, and it handles the rest itself.
50
44
 
51
45
  ### Manual setup
@@ -73,6 +67,9 @@ agent works with the world.
73
67
  fvtt-world-cli bridge serve
74
68
  ```
75
69
 
70
+ Keep this terminal open and use a second terminal for the remaining commands. Keep the target
71
+ world open in Foundry, logged in as a GM.
72
+
76
73
  4. Pair the browser: choose *Pair* in the module's Authorization window, reachable from the
77
74
  *World CLI* group in the scene controls or from the module's settings. Then approve the request
78
75
  from the terminal. It shows the requesting origin, world, GM, and browser, and asks for a yes
@@ -82,7 +79,10 @@ agent works with the world.
82
79
  fvtt-world-cli auth
83
80
  ```
84
81
 
85
- 5. Optionally, install the packaged skill into your AI agent; the next section explains what it
82
+ 5. Check the connection in Foundry. The *World CLI* icon in the scene controls turns green when
83
+ connected. Open *Bridge status* from the same group to see the connection details.
84
+
85
+ 6. Optionally, install the packaged skill into your AI agent; the next section explains what it
86
86
  does:
87
87
 
88
88
  ```bash
@@ -106,11 +106,9 @@ instructions survive updates.
106
106
 
107
107
  ## Built to be trusted with a live world
108
108
 
109
- The whole design assumes an automated caller that must not be able to exceed its intended
110
- authority; [Security](docs/security.md) covers the boundaries in full. In short:
109
+ You control which browser connects and which commands the agent may run. The main safeguards are:
111
110
 
112
- - Everything stays on your machine: the daemon accepts loopback connections only, and there is no
113
- internet-facing mode.
111
+ - The daemon accepts connections only from your machine, with no internet-facing mode.
114
112
  - Nothing connects without your approval: every browser pairs once through an explicit yes at your
115
113
  terminal, and no secrets are printed along the way.
116
114
  - Foundry remains the authority: every change runs through the same Document APIs and validation
@@ -119,21 +117,23 @@ authority; [Security](docs/security.md) covers the boundaries in full. In short:
119
117
  validation and guards as a real call and stops before mutation.
120
118
  - Every command has a permission in the active Foundry client: run, ask the GM, or refuse.
121
119
  Destructive commands ask the GM by default.
122
- - There is no arbitrary-code path: commands are typed and validated on both sides of the transport,
123
- and executable content such as scripted region behaviors is blocked on every write route.
124
- - File access is confined to the active world's managed assets and always excludes its manifest,
125
- databases, and packs.
120
+ - Commands are typed and validated on both sides of the connection. Macro execution and regions
121
+ that trigger macros are disabled by default and require the GM to enable dedicated commands.
122
+ Region behaviors that execute script code are blocked on every write route.
123
+ - File commands read assets within Foundry's managed `data` source. Writes are limited to the
124
+ active world's asset folders and always exclude its manifest, databases, and packs.
125
+
126
+ [Security](docs/security.md) explains these safeguards and their limits.
126
127
 
127
128
  ## Foundry compatibility
128
129
 
129
- Supported on Foundry VTT v13 and v14 (both verified). Version-dependent behavior is
130
- capability-gated and reported per command; [Compatibility](docs/compatibility.md) lists the
131
- differences that matter to operators.
130
+ Supported and verified on Foundry VTT v13 and v14. Some commands are available only on certain
131
+ Foundry versions. See [Compatibility](docs/compatibility.md) for the differences.
132
132
 
133
133
  ## Documentation
134
134
 
135
- [docs/README.md](docs/README.md) maps the full set: commands, protocol, security, architecture,
136
- compatibility, and the agent skill. The same documents ship inside the package and are printed by
137
- `fvtt-world-cli docs [document]`, so the installed CLI is self-describing offline.
135
+ The [documentation index](docs/README.md) links to the command reference, setup guides, security,
136
+ compatibility, and technical documentation. These documents also ship with the CLI. Read them
137
+ offline with `fvtt-world-cli docs [document]`.
138
138
 
139
139
  Bug reports and questions go to [GitHub Issues](https://github.com/DroiD16/fvtt-world-cli/issues).