Before you begin
- Bring Your Own Model is enabled per organization on the Enterprise plan. Contact support if you do not see the card.
- You need the organization admin role.
- Open Settings -> Configuration -> Bring Your Own Model.
Choose a provider
Pick one option from the provider list. One option serves traffic at a time.Set up Anthropic
Paste an API key. Gitar stores it encrypted and callsapi.anthropic.com with it.
The key needs access to Opus, Sonnet, and Haiku. Verification tells you if a workspace restriction is in the way.
Set up AWS Bedrock
Gitar assumes a role in your account per request through AWS STS, so no standing credential of yours is stored with Gitar.1
Pick your residency geography
Gitar routes to a geographic inference profile, so requests stay inside that geography’s regions on the AWS backbone.
Your service control policies have to allow every region in the geography, because a request may land in any of them.
2
Create the role in AWS
Open Create the role in AWS in the card. It carries your external ID and the policies to copy, and it stays available afterwards for whenever you rebuild the role or audit who can assume it.Name the role with the
gitar-bedrock- prefix. Gitar’s permission to assume roles is scoped to that prefix, so a role named anything else cannot be assumed however its trust policy reads.The external ID is fixed for your organization and never changes. It is not a secret, but the role must require it. That condition is what stops anyone else who learns your role ARN from asking Gitar to assume it.3
Enable the models in your AWS account
Submit the Anthropic use case details form, then have a principal with AWS Marketplace permissions invoke each model once from a region in the geography. That enables it account-wide.Listing models is not the same as being allowed to call them, which is what verification checks.
4
Paste the role ARN and verify
Paste the ARN into the card, then select Verify connection.
Global cross-region inference
Off by default. Global inference routes worldwide, including outside your geography, so turn it on only if throughput matters more than residency. With it off, a model your geography cannot serve fails rather than leaving the geography.Apply your own guardrail
Optional. Name a guardrail from your Bedrock account and Gitar sends it on every inference call it makes with your credentials, so your own PII and content policy runs on Gitar’s traffic. Bedrock guardrails are per-request. A guardrail configured in your account has no effect on anything until it is named here, which is why this field exists rather than being picked up automatically. Enter the guardrail’s ID or its full ARN, then a published version number orDRAFT. Both fields are required together, since Bedrock rejects an identifier without a version.
The role needs bedrock:ApplyGuardrail on the guardrail on top of the base permissions. Create the role in AWS shows that statement once you enter an identifier.
Verification sends its test calls with the guardrail attached, so a mistyped ID or a missing grant fails there rather than on your first review.
A guardrail that masks code is a guardrail that changes what Gitar reviews. Placeholders like
{EMAIL} replace the real text, so findings describe the masked version rather than your diff. Blocking is usually the better fit for source code, with masking reserved for the entity types you cannot let leave your account at all.Set up a gateway
LiteLLM, Portkey, and OpenRouter are configured the same way: the endpoint, and a credential for it. Gitar speaks the Anthropic Messages format to all three. You host the endpoint for LiteLLM, and Portkey and OpenRouter host theirs.LiteLLM
In Gateway URL, enter thehttps:// origin your proxy serves on, with no path. In LiteLLM API key, enter a virtual key.
Gitar calls LiteLLM’s /v1/messages API using the Anthropic Messages format. LiteLLM looks up each requested model_name and routes it to the configured backend, including Anthropic, Bedrock, or Vertex.
The virtual key authenticates Gitar to LiteLLM. Keep backend credentials in LiteLLM and grant the virtual key access to the models shown by Verify connection. A Bedrock or Vertex deployment does not need a separate Anthropic API key.
Troubleshoot refused requests
If every model shows Refused, check authentication before changing model names. A401 with API key is invalid can come from the gateway or its upstream provider. The gateway logs identify which credential was rejected.
Test a small request to /v1/messages with the same virtual key. LiteLLM supports both x-api-key: <virtual-key> and Authorization: Bearer <virtual-key>. Gitar sends x-api-key.
If gateway logs show Gitar calling /anthropic/v1/messages, contact support. Older Gitar deployments selected that passthrough route. Changing a model alias does not fix a route authentication failure.
Gateways with model aliases
LiteLLM’smodel_name values are chosen by the gateway administrator. They are not a universal LiteLLM model catalog. Query /v1/models with the Gitar virtual key to find the names available to that key, then verify that those names can be invoked.
Gitar’s Anthropic and LiteLLM options request claude-haiku-4-5, Anthropic’s short alias for Haiku 4.5. The alias follows the most recent snapshot of that minor version. See Anthropic’s model IDs and versioning.
For a model-name mismatch on /v1/messages, add a model_list entry with the exact name shown by Verify connection. Copy the existing deployment’s litellm_params and change only model_name. Keep the original entry for other clients and grant the Gitar virtual key access to the added name.
For example, a deployment exposed only as claude-haiku-4-5-20251001 can also be exposed as claude-haiku-4-5. Both entries must route to the intended Haiku model. These customer-configured aliases apply to native model routing, not Anthropic passthrough.
After the model names are configured, verify the connection and run a review to check streaming and tool calls. Include the LiteLLM version and upstream provider when contacting support.
Network access
Your proxy has to be reachable from the public internet. Gitar refuses a bare IP address,localhost, and any .internal, .local, or .svc.cluster.local host when you save, and refuses a hostname that resolves into private address space when it connects.
If your proxy enforces an IP allowlist, permit Gitar’s public IP addresses. See Network Access.
Portkey
Enter the provider slug you want the traffic routed through, then your Portkey API key. The slug is the name you gave the Anthropic integration in your Portkey workspace.A slug routes to whichever provider you wired up behind it, so the models Gitar needs have to be reachable through that provider. Verification calls each one and names any that are not.
OpenRouter
Enter an API key. OpenRouter is a broker rather than a boundary. If you are here for a data-residency requirement, Bedrock is the option that enforces one.Another gateway
For a gateway that is not listed, contact support.Verify the connection
Every option is verified the same way, and saving stays disabled until verification passes. Gitar sends one small request per model it needs, from your account, and reports what came back for each.Monitor a live configuration
Gitar re-checks the configuration in the background and shows a card on your dashboard when your account stops serving. Reviews are held rather than quietly routed back through Gitar’s account, so nothing leaves your boundary without you choosing it.
Held work resumes on its own once the configuration serves again.