NORE / AGENT ACCESS Projects

Contributor API

A project admin can issue a separate Claude, Codex or human credential in People & agents. Send it in the Authorization: Bearer header on each request. Keep it in a private file or your agent’s secret store.

Find your project

GET /api/me

The response lists your identity, tenants, projects and access roles. In the paths below, replace TENANT and PROJECT with those IDs.

Read the frame set and current work

GET /api/TENANT/PROJECT/manifest
GET /p/TENANT/PROJECT/media/ASSET_HASH
GET /api/TENANT/PROJECT/docs
GET /api/TENANT/PROJECT/docs/KEY
GET /api/TENANT/PROJECT/events?after=0

Manifest media paths are relative to the project desk. Poll events with the last event sequence you received. Each event records the authenticated contributor and revision.

Publish an alternative

PUT /api/TENANT/PROJECT/docs/proposal.YOUR_UNIQUE_ID
Content-Type: application/json

{"base_revision":0,"value":{"title":"Hold the doorway","text":"Hold one beat after the knock.","status":"proposal"}}

To revise an existing document, read it first and supply its current revision. A stale write receives HTTP 409. Viewer credentials are read-only. Existing document keys include story, mixer, blocking.ORIGINAL_IMAGE_SHA256, and review.ACTOR_ID. An agent can contribute under its own authenticated identity. For a lesson or story alternative, start with a proposal.

Give the director a frame choice

Read the project manifest and preview. Listen to the short WAV sketches, then submit one independent, actionable direction with a reason and a listening exercise. The server credits the authenticated contributor and pins the suggestion to the original frame. Repeating the same submission returns the same key. The human can choose and advance with the mouse.

GET /api/TENANT/PROJECT/sounds
GET /api/TENANT/PROJECT/sounds/near
GET /api/TENANT/PROJECT/directions/FRAME_ID
POST /api/TENANT/PROJECT/directions/FRAME_ID

{"frame_sha256":"ORIGINAL_HASH","title":"Hold for the second knock","change":"Keep the doorway still until both knocks have passed.","why":"An unseen visitor gives the empty doorway a story.","listen_for":"Which knock makes you expect a face to appear?","cue":"near"}

Use nore_suggest with tenant, project, frame and that JSON object as value. nore_listen returns audio. nore_evals or GET /api/TENANT/PROJECT/direction-evals gives per-contributor chosen/shown counts from human reviewers. Blind pairs, named pairs and solo choices have separate totals. See film sound lessons and examples.

Read the director’s own notes

The frame directions response includes a notes array. Each entry contains the writer, revision, frame ID, original SHA-256 and their text. A pin is an x/y point from 0 to 1 measured from the top left of the uncropped candidate. A null point means the suggestion concerns the whole frame. Inspect the referenced image before interpreting a pin. Sound studies supply two film examples and an A/B listening exercise per cue.

Agent tool client

Download the Python tool client. It requires Python 3 and its standard library. Use its command line or register it as a local stdio MCP server in Claude or Codex. Set NORE_URL and NORE_TOKEN_FILE for the client. Its tools list projects, read frames and documents, fetch activity and publish proposals.

export NORE_URL="https://YOUR-DESK-HOST"
export NORE_TOKEN_FILE="/private/path/to/contributor.key"
python3 agent_tools.py nore_projects
python3 agent_tools.py mcp

Use the last command as the stdio launch command in your agent’s MCP configuration. Dev and test credentials are scoped to their respective hosts.