| name | droploft-loft |
| version | 0.2.0 |
| description | Lofts: types, switching, listing, member operations. |
| metadata | {"requires":{"bins":["droploft"],"skills":["droploft-shared"]},"cliHelp":"droploft loft --help"} |
Droploft v2 CLI — Loft Skill
A loft is a folder-like container of drops inside a workspace. Every drop belongs to exactly one loft.
Loft types
| Type | Visibility | Created by |
|---|
my | Personal — only the owner | Auto-created on signup; one per user |
all_hands | Every workspace member | Workspace owner / admin |
restricted | Explicit member list | Workspace owner / admin |
Layer 1 flows
droploft loft +list
droploft loft +switch
droploft loft +switch --loft <id>
loft +switch calls GET /v1/me/navigation so it sees lofts in every workspace you belong to (not just personal). It also updates profile.workspace_id to match the chosen loft's workspace, so subsequent commands inherit both.
Layer 2 resource verbs
droploft lofts list
droploft lofts get <loft-id>
droploft lofts create --data '{"name":"Engineering","type":"all_hands","workspace_id":"<ws>"}'
droploft lofts documents <loft-id>
Patterns
Move work into a fresh shared loft
WS=$(droploft config get workspace_id --format json | jq -r '.data.workspace_id')
droploft lofts create --data "{\"name\":\"Launch Q1\",\"type\":\"all_hands\",\"workspace_id\":\"$WS\"}" \
--format json | jq -r '.data.id'
Switch profile to a loft you found by name
LOFT=$(droploft lofts list --format json --jq '.[] | select(.name=="Launch Q1") | .id')
droploft loft +switch --loft "$LOFT"
Errors
loft +switch with no flag in non-TTY → non_interactive (exit 2). Pass --loft <id>.
- Creating an
all_hands or restricted loft requires workspace owner/admin role; otherwise 403.