Get environment

Reads one codebase's environment.

GET /v1/environment/{repo}

Addresshttps://api.hanzo.ai/v1/environment/{repo}
MethodGET
Operationget_environment_by_repo
AuthAuthorization: Bearer $HANZO_API_KEY

Reads one codebase's environment.

A codebase with none answers 200 with state none and empty scripts, so a surface can always draw the editor. proposed means a setup run's answer is waiting in proposal; nothing in it runs until it is saved.

Request

1 field.

FieldInTypeRequiredDescription
repopathstringyesRepo is the repository's name in the caller's org — a name, never owner/name.

Response

StatusBodyMeaning
200environment.Environmentok
defaultproblem-detailsrefused

200 body — 12 fields.

FieldInTypeAlwaysDescription
installbodystring—Install is the shell a run executes in its fresh checkout before the agent starts, from the repository root.
proposalbodyenvironment.Proposal—
proposal.installbodystring—Install is the install script the agent checked.
proposal.notebodystring—Note is what the agent found and checked, in its own words.
proposal.secretsbodystring[]—Secrets are the environment variables the agent found the codebase reads.
proposal.startbodystring—Start is the start command the agent checked, or empty.
repobodystring—Repo is the codebase: a repository's name in the caller's org.
secretsbodystring[]—Secrets are the names set on this codebase, each exported to the run's commands under that name.
sessionbodystring—Session is the setup run that produced the proposal, when there is one.
startbodystring—Start is the one command a run leaves running in the background once the install has finished — a dev server, a database.
statebodystring—State is none when nothing is saved or proposed, proposed when a setup run's answer is waiting to be reviewed, and ready otherwise.
updatedAtbodystring—UpdatedAt is when this environment last changed, RFC 3339.

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, EnvironmentApi } from 'hanzoai';

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

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

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

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

let result = environment_api::get_environment_by_repo(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.EnvironmentApi;

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

var result = new EnvironmentApi(client).getEnvironmentByRepo();
curl https://api.hanzo.ai/v1/environment/<repo> \
  -H "Authorization: Bearer $HANZO_API_KEY"

Tool environment, op get_environment_by_repo — POST the JSON-RPC envelope to https://api.hanzo.ai/v1/mcp.

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "environment",
         "arguments": {
           "op": "get_environment_by_repo",
           "input": {
             "repo": "<repo>"
           }
         }
       }
     }'

Environment API · All Hanzo APIs · Interactive reference

Was this page useful?