Skip to content
Sign in with Google

Write a file

PUT
/v1/workspace/user/file

Write the whole new text of one file into the working copy, over the version read (previous), never forced. 409 file_changed when it changed since, such as by the agent; 422 file_invalid (with reason) when it cannot be written: a path, not text, too large. In context a draft agents would not load yet is written: the listing warns of it, and Save refuses it. Nothing is published until Save; the agent sees it at once. 409 workspace_busy while Git works in the repository (the agent’s, or a sync): nothing changed, try again. The user’s own.

Authorizations

Request Body required

object
path
required

A repository-relative file path, such as AGENTS.md or .agents/skills/month-end-close/SKILL.md.

string
>= 1 characters <= 512 characters
content
required

The whole new text.

string
<= 262144 characters
previous
required
Any of:
string
/^[0-9a-f]{40}$/

Responses

200

Success

A file written into the working copy: not published until Save.

object
path
required
string
size
required

Bytes.

number
sha
required

Its new Git blob ID: the next write’s previous.

string

400

Rejected; never contains credentials or upstream payloads.

object
error
required
object
code
required

Stable code, e.g. not_found, idempotency_conflict, session_working, usage_limit_exceeded. Open.

string
type

Category, e.g. invalid_request_error, authentication_error, usage_limit_error. Open.

string
message
string
host

Host_in_use: the host another service holds.

string
service

Host_in_use: the id of the service that holds the host.

string
reason

File_invalid: why the change, or a picture, was refused. Open: path | text | size | skill | skills | count | type.

string
paths

File_exists from an add: every path of the request where a file is and replace was not set, all at once, so the person can be asked once. publish_conflict: the files someone published changes to the same lines of.

Array<string>
publishers

Publish_conflict: who published those changes, by name.

Array<string>

401

Rejected; never contains credentials or upstream payloads.

object
error
required
object
code
required

Stable code, e.g. not_found, idempotency_conflict, session_working, usage_limit_exceeded. Open.

string
type

Category, e.g. invalid_request_error, authentication_error, usage_limit_error. Open.

string
message
string
host

Host_in_use: the host another service holds.

string
service

Host_in_use: the id of the service that holds the host.

string
reason

File_invalid: why the change, or a picture, was refused. Open: path | text | size | skill | skills | count | type.

string
paths

File_exists from an add: every path of the request where a file is and replace was not set, all at once, so the person can be asked once. publish_conflict: the files someone published changes to the same lines of.

Array<string>
publishers

Publish_conflict: who published those changes, by name.

Array<string>

403

Rejected; never contains credentials or upstream payloads.

object
error
required
object
code
required

Stable code, e.g. not_found, idempotency_conflict, session_working, usage_limit_exceeded. Open.

string
type

Category, e.g. invalid_request_error, authentication_error, usage_limit_error. Open.

string
message
string
host

Host_in_use: the host another service holds.

string
service

Host_in_use: the id of the service that holds the host.

string
reason

File_invalid: why the change, or a picture, was refused. Open: path | text | size | skill | skills | count | type.

string
paths

File_exists from an add: every path of the request where a file is and replace was not set, all at once, so the person can be asked once. publish_conflict: the files someone published changes to the same lines of.

Array<string>
publishers

Publish_conflict: who published those changes, by name.

Array<string>

404

Rejected; never contains credentials or upstream payloads.

object
error
required
object
code
required

Stable code, e.g. not_found, idempotency_conflict, session_working, usage_limit_exceeded. Open.

string
type

Category, e.g. invalid_request_error, authentication_error, usage_limit_error. Open.

string
message
string
host

Host_in_use: the host another service holds.

string
service

Host_in_use: the id of the service that holds the host.

string
reason

File_invalid: why the change, or a picture, was refused. Open: path | text | size | skill | skills | count | type.

string
paths

File_exists from an add: every path of the request where a file is and replace was not set, all at once, so the person can be asked once. publish_conflict: the files someone published changes to the same lines of.

Array<string>
publishers

Publish_conflict: who published those changes, by name.

Array<string>

409

Rejected; never contains credentials or upstream payloads.

object
error
required
object
code
required

Stable code, e.g. not_found, idempotency_conflict, session_working, usage_limit_exceeded. Open.

string
type

Category, e.g. invalid_request_error, authentication_error, usage_limit_error. Open.

string
message
string
host

Host_in_use: the host another service holds.

string
service

Host_in_use: the id of the service that holds the host.

string
reason

File_invalid: why the change, or a picture, was refused. Open: path | text | size | skill | skills | count | type.

string
paths

File_exists from an add: every path of the request where a file is and replace was not set, all at once, so the person can be asked once. publish_conflict: the files someone published changes to the same lines of.

Array<string>
publishers

Publish_conflict: who published those changes, by name.

Array<string>

410

Rejected; never contains credentials or upstream payloads.

object
error
required
object
code
required

Stable code, e.g. not_found, idempotency_conflict, session_working, usage_limit_exceeded. Open.

string
type

Category, e.g. invalid_request_error, authentication_error, usage_limit_error. Open.

string
message
string
host

Host_in_use: the host another service holds.

string
service

Host_in_use: the id of the service that holds the host.

string
reason

File_invalid: why the change, or a picture, was refused. Open: path | text | size | skill | skills | count | type.

string
paths

File_exists from an add: every path of the request where a file is and replace was not set, all at once, so the person can be asked once. publish_conflict: the files someone published changes to the same lines of.

Array<string>
publishers

Publish_conflict: who published those changes, by name.

Array<string>

411

Rejected; never contains credentials or upstream payloads.

object
error
required
object
code
required

Stable code, e.g. not_found, idempotency_conflict, session_working, usage_limit_exceeded. Open.

string
type

Category, e.g. invalid_request_error, authentication_error, usage_limit_error. Open.

string
message
string
host

Host_in_use: the host another service holds.

string
service

Host_in_use: the id of the service that holds the host.

string
reason

File_invalid: why the change, or a picture, was refused. Open: path | text | size | skill | skills | count | type.

string
paths

File_exists from an add: every path of the request where a file is and replace was not set, all at once, so the person can be asked once. publish_conflict: the files someone published changes to the same lines of.

Array<string>
publishers

Publish_conflict: who published those changes, by name.

Array<string>

413

Rejected; never contains credentials or upstream payloads.

object
error
required
object
code
required

Stable code, e.g. not_found, idempotency_conflict, session_working, usage_limit_exceeded. Open.

string
type

Category, e.g. invalid_request_error, authentication_error, usage_limit_error. Open.

string
message
string
host

Host_in_use: the host another service holds.

string
service

Host_in_use: the id of the service that holds the host.

string
reason

File_invalid: why the change, or a picture, was refused. Open: path | text | size | skill | skills | count | type.

string
paths

File_exists from an add: every path of the request where a file is and replace was not set, all at once, so the person can be asked once. publish_conflict: the files someone published changes to the same lines of.

Array<string>
publishers

Publish_conflict: who published those changes, by name.

Array<string>

422

Rejected; never contains credentials or upstream payloads.

object
error
required
object
code
required

Stable code, e.g. not_found, idempotency_conflict, session_working, usage_limit_exceeded. Open.

string
type

Category, e.g. invalid_request_error, authentication_error, usage_limit_error. Open.

string
message
string
host

Host_in_use: the host another service holds.

string
service

Host_in_use: the id of the service that holds the host.

string
reason

File_invalid: why the change, or a picture, was refused. Open: path | text | size | skill | skills | count | type.

string
paths

File_exists from an add: every path of the request where a file is and replace was not set, all at once, so the person can be asked once. publish_conflict: the files someone published changes to the same lines of.

Array<string>
publishers

Publish_conflict: who published those changes, by name.

Array<string>

503

Rejected; never contains credentials or upstream payloads.

object
error
required
object
code
required

Stable code, e.g. not_found, idempotency_conflict, session_working, usage_limit_exceeded. Open.

string
type

Category, e.g. invalid_request_error, authentication_error, usage_limit_error. Open.

string
message
string
host

Host_in_use: the host another service holds.

string
service

Host_in_use: the id of the service that holds the host.

string
reason

File_invalid: why the change, or a picture, was refused. Open: path | text | size | skill | skills | count | type.

string
paths

File_exists from an add: every path of the request where a file is and replace was not set, all at once, so the person can be asked once. publish_conflict: the files someone published changes to the same lines of.

Array<string>
publishers

Publish_conflict: who published those changes, by name.

Array<string>