Projects

A private file repository for each account, shared by every assistant you connect. Each folder under /projects is a project; files are stored as real files and survive between conversations and between vendors.

From an assistant

No setup beyond connecting AI Power Ups. Ask in plain words and the assistant uses the Projects tools on its own:

  • “Draft a plan for my plant watering bot and save it to a project.”
  • “We're working on the plant watering bot project. Check where things stand and write the main file.”
  • “Save these call notes to a project.” Later: “We're back on the Lisbon offsite.”

Work saved by one assistant is there for the next, from any vendor: a plan Claude saved can be continued in ChatGPT or Codex, and the other way round. You can also open, upload, preview, download and delete files yourself under Projects in the dashboard.

MCP tools

  • projects_bash: runs a bash command against /projects. Reads and writes go straight to storage: cat reads a file, > and heredocs write, mv, cp and rm move, copy and delete. Supports ls, grep, find, sed, awk, jq, diff and the other common tools. It is a file shell: it cannot run python, node or git and has no network. /tmp is scratch space for one command.
  • projects_download: a one-hour link to a file, or to a whole folder as a .zip (/projects downloads everything).
  • projects_upload: a one-hour link for uploading files from the machine the assistant runs on, with a resumable address for large files.
projects_bash result
{ "stdout": "PLAN.md\nREADME.md\n", "stderr": "", "exit_code": 0, "truncated": false }

REST operations

Every operation accepts an API key, an OAuth token or a dashboard session. Paths are absolute, starting with /projects.

  • GET /v1/projects (listProjects): projects with size and last change, plus usage (used_bytes, allowance_bytes).
  • POST /v1/projects (createProject): body { "name": "plant-watering-bot" }.
  • GET /v1/projects/tree?path= (getProjectTree): every folder and file below a path.
  • DELETE /v1/projects/files?path= (deleteProjectPath): deletes a file or a folder with everything in it.
  • POST /v1/projects/bash (projectsBash): body { "command": "…", "cwd"?: "/projects/…" }.
  • POST /v1/projects/links (createProjectLink): body { "path": "…", "action": "download" | "upload" | "view" }.
curl
curl -s https://api.powerups-ai.store/v1/projects/bash -H "Authorization: Bearer $AIPA_API_KEY" \
  -H 'content-type: application/json' \
  -d '{"command":"ls /projects && cat /projects/plant-watering-bot/PLAN.md"}'

Uploads and downloads

Links from POST /v1/projects/links (or the projects_upload and projects_download tools) need no credentials and expire after one hour.

  • Download: GET the link and follow the redirect. A file comes straight from storage; a folder is zipped first, then served from storage.
  • Upload: PUT the bytes to the link. For a folder link, add &path= with the file's path inside the folder. An existing file is replaced.
  • Resumable upload: a single request must finish within 5 minutes, so larger or slower uploads use resumable_url with any tus 1.0.0 client: POST with Upload-Length, then PATCH 6 MiB chunks to the returned Location; HEAD reports the offset to resume from.
curl
# One file into a folder link
curl -T report.pdf "$UPLOAD_URL&path=docs/report.pdf"

# Everything as a zip
curl -L -o projects.zip "$DOWNLOAD_URL"

Limits and errors

  • The only storage limit is your plan's allowance (shown on the dashboard); there is no per-file size limit. A write or upload that would go over it fails with 413 storage_full, and an upload is cut off the moment it would.
  • projects_bash reads at most 64 MB per file and returns up to 64 KB of output per stream (truncated: true beyond that). Use a download link for larger files.
  • Files live directly in a project folder, never in /projects itself. Folder and file names can use any characters except /.
  • Projects is included in every plan and costs no usage tokens.
Private to your account
Every connected assistant and API key on your account sees the same files; nothing is visible to anyone else. File content is treated as data, never as instructions.