Project Library
Every project you generate in Logic64 is persisted server-side. The Project Library is the Studio view of those projects — a single place to find, inspect, and re-emit any workspace you have ever created, on any machine.
Once a project exists in the Library, you can produce a fresh bundle from it at any time without running a new generation. The repackage operation is deterministic and LLM-free: it reads the persisted file set and assembles a new bundle.zip ready to pull.
Where your projects live
When the Engine finishes generating a workspace, Logic64 persists the complete file set and architecture state to your account. Nothing is discarded after the initial pull. The Library retains every project you have created, regardless of plan tier.
Each project in the Library corresponds to a single generation run. If you refine and re-generate, the updated state replaces the previous one under the same project entry. Bundles produced from that project always reflect its latest persisted state.
Projects are account-scoped. Collaborator access and team workspaces are available on Architect Pro. See plans →
What metadata you see
Each row in the Library displays the following fields:
- Name — the project name you set when creating the workspace.
- Last generated — timestamp of the most recent successful generation run.
- Bundle status — whether a bundle is available (
ready), has been downloaded (downloaded), or has expired (expired). - Project ID — the unique identifier used in CLI commands and API calls. Copy it from the project detail panel in Studio.
Re-pulling on a new machine
If you switch machines or your original bundle has expired, use logic64 export to request a fresh bundle from the persisted project state. The command prints a new bundle ID and the ready-to-run pull command.
# Step 1 — re-emit a bundle from a persisted project (LLM-free, deterministic)$ logic64 export a1b2c3d4-e5f6-7890-abcd-ef1234567890# ✓ Bundle created: 9f3e1c88-0a2b-4d67-b812-3e7f90214abc# → Run: logic64 pull 9f3e1c88-0a2b-4d67-b812-3e7f90214abc# Step 2 — pull the bundle onto this machine$ logic64 pull 9f3e1c88-0a2b-4d67-b812-3e7f90214abc# ↓ Downloading bundle 9f3e1c88# ✓ 18 files written — project scaffold, CLAUDE.md, memory.md, MCP configs# ✓ resolution_log.json written to project root
The project ID is visible in Studio on the project detail panel. You can also copy it directly from the Library row. Authenticate first on the new machine with logic64 auth --api-key l64_YOUR_KEY --api-url https://api.logic64.com.
Repackage API
The CLI logic64 export command calls the following endpoint directly. You can also call it from your own tooling:
$ curl -X POST https://api.logic64.com/projects/PROJECT_ID/bundles/repackage \-H "Authorization: Bearer l64_YOUR_API_KEY" \-H "Idempotency-Key: $(uuidgen)" \--silent | jq# 200 OK{"bundleId": "9f3e1c88-0a2b-4d67-b812-3e7f90214abc","fileCount": 12,"totalSizeBytes": 48210}
The operation is deterministic and LLM-free — no generation is re-run. The response returns a bundleId you pass directly to logic64 pull.
- Idempotency-Key header (optional, recommended) — a client-generated UUID. If the same key is sent twice within 60 seconds, the second response returns the same
bundleIdwithout creating a duplicate. The response will includeIdempotency-Replayed: true. - Request body — empty. No payload required.
- Auth — standard
Authorization: Bearer l64_…header required on every request.
Rate limits and size caps
The repackage endpoint enforces two independent constraints:
- Rate limit: 3 requests per minute per user. Exceeding the limit returns a
429response with aRetry-Afterheader indicating how many seconds to wait before retrying. - Project size cap: projects with more than 500 files or a total size exceeding 25 MB cannot be repackaged. The error code is
PROJECT_TOO_LARGE, and the response body includes both the limit and the actual value so you can see exactly how far over the cap the project is.
These limits apply per account and are not affected by plan tier. If you are building automation that calls repackage frequently, use the Idempotency-Key header to avoid unintentionally consuming your rate limit quota on duplicate calls.
Repackage errors
All error responses include a JSON body. The table below maps each status code to its cause:
| Status | Code / Body | Meaning |
|---|---|---|
| 401 | INVALID_API_KEY | The API key is missing or does not match any active key. |
| 404 | Project not found | The project ID does not exist or belongs to a different account. |
| 409 | PROJECT_EMPTY | No files are persisted for this project yet. Run a generation first. |
| 413 | PROJECT_TOO_LARGE | The project exceeds the 500-file or 25 MB cap. |
| 429 | Too many requests | Rate limit reached (3 req/min/user). Check the Retry-After response header. |
| 502 | Engine unreachable | The bundle assembly service encountered an error. Retry after a moment. |
Iterating on an existing project
Repackage always produces a bundle from the current persisted state. If you want to change the project — refine its description, adjust the architecture plan, or add new requirements — do so inside Studio:
- Open the project from the Library in Studio.
- Edit the description or plan in the generation panel. Logic64 re-runs the plan phase first so you can review the updated architecture before any files are written.
- Approve the plan and click Generate. A new generation run starts; when it completes, the persisted state is updated.
- Pull the new bundle with
logic64 pull <newBundleId>. The CLI handles file routing and conflict resolution automatically, and writes aresolution_log.jsonso you can see exactly what changed.
Removing a project
To remove a project from the Library, open it in Studio and use the Delete project action in the project settings panel. Deletion is permanent — the persisted file set and all associated bundles are removed from your account. Any local files you have already pulled are not affected.
If you only want to remove the current bundle without deleting the project, let it expire naturally (24 hours after the last pull ACK) or produce a new bundle via repackage — the previous bundle is superseded automatically.
Next steps
From here, you can deepen your understanding of the CLI commands that interact with the Library, explore the full API surface, or review how rate limits apply across all endpoints.