- Configure PI WEB — config files, paths, and session tools
+ Configure PI WEB — config files, uploads, paths, and session tools
@@ -14,7 +14,7 @@
@@ -23,7 +23,7 @@
@@ -81,7 +81,7 @@
PI WEB configuration covers the machine-local and project-local settings you usually need: bind address,
trusted development-host settings, UI preferences, PI WEB plugin enablement, file-explorer path access,
- upload limits, and session-daemon tools.
+ manual upload defaults, upload limits, and session-daemon tools.
- Pi package settings are separate from PI WEB config. They live in Pi's package-manager settings and are
- managed by Pi (pi install, pi remove, pi update) or
- Settings → Pi packages. The PI WEB plugins config key only enables or
- disables discovered PI WEB browser plugins.
+ Pi package settings are separate from PI WEB config. They live in Pi's package-manager settings on the
+ target machine and are managed by Pi (pi install, pi remove, pi update) or
+ Settings → Pi packages. In a federated setup, Settings → Pi packages
+ targets the currently selected machine; the PI WEB plugins config key only enables or
+ disables discovered PI WEB browser plugins for the gateway you opened.
If you installed services with a custom config path, rerun
@@ -128,10 +130,14 @@
Precedence and reloads
-
Runtime values are resolved in this order:
+
Machine-global runtime values are resolved in this order:
-
defaults → config file → environment overrides
+
defaults → global config file → environment overrides
+
+ Supported project-local settings are then applied for that project's workspaces. For upload defaults,
+ <project>/.pi-web/config.json overrides the global value.
+
maxUploadBytes: restart both the web/API process and the session daemon.
spawnSessions / subsessions: restart the session daemon.
pathAccess: applies on the next request; existing file views may need a browser refresh.
+
uploads.defaultFolder: applies to newly opened Files upload dialogs and new direct drag/drop batches after config/workspace refresh.
plugins: reload the browser tab after changing PI WEB plugin enablement.
-
Pi package install/remove/update: not a PI WEB config key; after a mutation, type /reload in each idle PI WEB session to refresh Pi runtime resources such as extensions, skills, prompt templates, themes, and context/system prompt files as supported by Pi. Reload the browser page separately for PI WEB browser plugin changes. A routine session daemon restart is not required.
+
Pi package install/remove/update: not a PI WEB config key; after a mutation, type /reload in each idle PI WEB session on the target machine to refresh Pi runtime resources such as extensions, skills, prompt templates, themes, and context/system prompt files as supported by Pi. Reload the browser page separately for PI WEB browser plugin changes. A routine session daemon restart is not required.
shortcuts: saved settings apply in the browser after config refresh/save.
Project-local config lives at <project>/.pi-web/config.json. Use it for settings that should
- follow a repository. When a project config defines pathAccess, PI WEB merges it after the
- global path list.
+ follow a repository.
- Project-local pathAccess.allowedPaths entries must still be host-absolute or
- ~-prefixed; relative roots are not supported. Plugins may own separate project files, such as
- .pi-web/tasks.json for the built-in Workspace Tasks plugin.
+ Project-local pathAccess.allowedPaths entries are merged after the global list and deduplicated.
+ Paths must still be host-absolute or ~-prefixed; relative roots are not supported.
+
+
+ Project-local uploads.defaultFolder overrides the global upload destination for workspaces in
+ that project. Current PI WEB servers include this workspace-effective value on local and federated
+ workspace responses; older remote servers may omit it and the browser falls back to the global/default
+ upload folder.
+
+
+ Plugins may own separate project files, such as .pi-web/tasks.json for the built-in Workspace
+ Tasks plugin.
@@ -262,6 +283,14 @@
Merges: global roots first, then project roots; duplicates removed
Next file request; refresh existing views if needed
+
+
Manual file upload default folder
+
uploads.defaultFolder
+
—
+
Global + project
+
Overrides: project value wins for workspaces in that project; otherwise global/default applies
+
New Upload dialogs and direct drag/drop batches after config/workspace refresh
+
Upload/body limit
maxUploadBytes
@@ -428,6 +457,26 @@
+
+
Manual upload defaults
+
+ The Files panel can upload files by dropping them onto the panel or by using the toolbar
+ Upload button. uploads.defaultFolder sets the workspace-effective default
+ destination. The built-in default is .pi-web/uploads; a project-local value overrides the
+ global value for workspaces in that project.
+
+
+ The value must be a non-empty workspace-relative folder. PI WEB normalizes repeated separators and
+ backslashes to /, and rejects absolute paths or .. traversal. In the upload
+ dialog only, clearing the destination field uploads that batch to the workspace root.
+
+
+ Manual uploads use the workspace file-write path: paths stay workspace-relative, parent folder creation is
+ enabled by default, and overwrite is disabled by default. Browser-owned XHR progress is shown per
+ batch/file, and conflicts or errors stay visible in the upload progress UI.
+
Your device is replaceable. The sessions are not. Move between laptop, phone, tablet, and desktop
without moving the development environment. Under the hood, PI WEB coordinates the running sessions,
- files, terminals, and remote machines like a browser-based control plane.
+ files, terminals, Pi package management, and remote machines like a browser-based control plane.
diff --git a/docs/machines.html b/docs/machines.html
index 665f222..38099c1 100644
--- a/docs/machines.html
+++ b/docs/machines.html
@@ -6,7 +6,7 @@
PI WEB fleet — remote Pi web UI machines
@@ -81,7 +81,7 @@
Most PI WEB setups only need one runtime. When you do have more than one, machine federation lets the PI WEB
instance you opened act as a gateway to other trusted runtimes while each machine keeps its own repositories,
- credentials, sessions, and plugins.
+ credentials, sessions, Pi package settings, and plugins.
@@ -111,7 +111,7 @@
After registration, the browser keeps talking to the current PI WEB origin. The gateway contacts the
selected remote PI WEB server and routes that machine's projects, workspaces, sessions, files, git state,
- activity, and terminals to the browser UI.
+ activity, terminals, and Pi package-management operations to the browser UI.
@@ -125,7 +125,7 @@ PI WEB gateway you opened
│
├─ [ Remote PI WEB runtime A ]
│ ↓ selected machine
- │ projects, workspaces, sessions, terminals, plugins
+ │ projects, workspaces, sessions, terminals, Pi packages, plugins
│
└─ [ Remote PI WEB runtime B ]
@@ -151,7 +151,7 @@ PI WEB gateway you opened
⌁
Local ownership
-
Each target machine keeps its own Pi auth, sessions, worktrees, terminal state, and plugins.
+
Each target machine keeps its own Pi auth, sessions, worktrees, terminal state, Pi package settings, and plugins.
@@ -213,6 +213,7 @@ PI WEB gateway you opened
Pi sessions, transcripts, prompts, model controls, and commands.
Activity indicators and realtime updates.
Terminals and terminal command runs.
+
Pi package listing, install, remove, and update from Settings → Pi packages when supported by the target PI WEB runtime.
Remote plugins from the selected machine.
@@ -220,8 +221,9 @@ PI WEB gateway you opened
Credentials stay on the target machine
- Model-provider credentials, Pi configuration, OAuth state, repositories, and active session runtimes stay
- on the selected target machine. The gateway does not copy them into its own Pi configuration.
+ Model-provider credentials, Pi configuration, Pi package-manager settings, OAuth state, repositories, and
+ active session runtimes stay on the selected target machine. The gateway does not copy them into its own
+ Pi configuration.
API-key provider configuration can be proxied through the gateway.
diff --git a/docs/plugins.html b/docs/plugins.html
index 278ba9b..604c6b2 100644
--- a/docs/plugins.html
+++ b/docs/plugins.html
@@ -144,13 +144,21 @@
local path. PI WEB uses Pi's default package location, equivalent to pi install <source>,
and does not ask for an install location.
+
+ When machine federation is enabled, Settings → Pi packages targets the currently selected
+ machine. The panel labels whether changes will run on the local/gateway machine or on a selected remote
+ PI WEB machine. If an older or unavailable remote PI WEB server does not expose package-management routes,
+ PI WEB reports the package management operation as unsupported or unavailable instead of silently falling
+ back to the gateway.
+
Use Settings → PI WEB plugins to enable or disable discovered PI WEB browser plugins
- before the browser imports them. After installing, removing, or updating a Pi package, type
- /reload in each idle PI WEB session to refresh Pi runtime resources such as extensions,
- skills, prompt templates, themes, and context/system prompt files as supported by Pi. Reload the browser
- page separately for newly discovered or changed PI WEB browser plugins. A routine session daemon restart
- is not required.
+ before the browser imports them. This plugin enablement surface is for the PI WEB gateway you opened; to
+ change remote plugin enablement, open that remote machine directly or edit its PI WEB config on that
+ machine. After installing, removing, or updating a Pi package, type /reload in each idle
+ PI WEB session on the target machine to refresh Pi runtime resources such as extensions, skills, prompt
+ templates, themes, and context/system prompt files as supported by Pi. Reload the browser page separately
+ for newly discovered or changed PI WEB browser plugins. A routine session daemon restart is not required.
@@ -323,7 +331,9 @@ After editing, check the manifest endpoint and browser-console failure cases.
This surface is only for PI WEB plugin enablement. To install, remove, or update Pi packages that may
- provide plugins or other Pi resources, use Settings → Pi packages.
+ provide plugins or other Pi resources, use Settings → Pi packages. In a federated setup,
+ the Pi packages panel targets the selected machine; the PI WEB plugins panel still controls gateway plugin
+ enablement.