Create workspace

Sets the org's code workspace up for the caller and answers it: the namespace, made when the org has none, and the caller's forge account and seat there.

POST /v1/git/workspace

Addresshttps://api.hanzo.ai/v1/git/workspace
MethodPOST
Operationpost_git_workspace
AuthAuthorization: Bearer $HANZO_API_KEY

Sets the org's code workspace up for the caller and answers it: the namespace, made when the org has none, and the caller's forge account and seat there. Idempotent. The estate's namespace is answered from the closed table and nobody is enrolled in it. A seat is a person's: an API key or an application is refused, and a SuperAdmin acting in another org reads the workspace as it is and makes nothing.

Request

The document declares no body for POST /v1/git/workspace. The handler is typed in cloud but its shape is not yet emitted, so the fields are not listed here — ask MCP's describe for post_git_workspace, which answers from the running route.

Response

StatusBodyMeaning
200git.workspaceViewok
defaultproblem-detailsrefused

200 body — 3 fields.

FieldInTypeAlwaysDescription
loginbodystring—Login is the caller's forge account in a made workspace.
madebodyboolean—Made says the platform made it for the org; false is the estate's.
ownerbodystring—Owner is the forge namespace.

Failure carries the platform error shape — see Errors.

Examples

hanzo has no subcommand for this operation — the CLI serves only what cloud's live route table confirms. Use HTTP or an SDK.

import { Configuration, GitApi } from 'hanzoai';

const api = new GitApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postGitWorkspace();
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import GitApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = GitApi(client).post_git_workspace()
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.GitAPI.PostGitWorkspace(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, git_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = git_api::post_git_workspace(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.GitApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new GitApi(client).postGitWorkspace();
curl -X POST https://api.hanzo.ai/v1/git/workspace \
  -H "Authorization: Bearer $HANZO_API_KEY"

MCP reaches git through the git tool, which names its 38 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_git_keys"
         }
       }
     }'

Git API · All Hanzo APIs · Interactive reference

Was this page useful?