# What Straza is

What Straza does, where it decides, who it is for, and what it does not try to do.

In short: Straza decides each action an AI agent takes against the roles that your IGA, or an admin on standalone, assigns, and records every decision. The same server binary runs on a laptop and on a fleet. Straza sees only the actions that pass through its hook, its gateway or `straza exec`.


StrazaisopensourceruntimegovernanceforAIagents.YourIGA,oranadminonthestandaloneprofile,sayswho[peopleandagents](https://docs.straza.ai/concepts/identities/index.md)areandwhich[roles](https://docs.straza.ai/concepts/roles-and-access/index.md)theyhold.Strazadecideseachtoolcallthatpassesthroughitagainstthoseroles,ontheagent'smachineandatthegatewayinfrontofyourMCPservers.Arulecan[askapersonfirst](https://docs.straza.ai/concepts/approvals-model/index.md).Everydecisionbecomesan[auditrecord](https://docs.straza.ai/concepts/evidence/index.md).##TheproblemitanswersAnagentrunswiththeshell,thefilesandthecredentialsofthepersonortheworkloadbehindit,andamodelcanbetalkedintousingthem.Acontrolinsidethemodel'sownprocesscannotstopthat,becausethatprocessisthethingunderattack.Strazadecideseachactionoutsidethemodel,againstasigned[policy](https://docs.straza.ai/concepts/policy-model/index.md),andrefusestoactwhenitcannottellwhatthecurrentstateis.Itkeepsthe[credentials](https://docs.straza.ai/concepts/credentials/index.md)ofyourMCPserversoutoftheagent'sreach.##WhereStrazadecidesStrazadecidesattheseenforcementpoints,andeachoneseesadifferentkindofaction:-Thehookrunsontheagent'smachine.ClaudeCode,CodexCLIandGeminiCLIcallitbeforeeachlocaltoolruns,suchasashellcommandorafilewrite,andtheStrazaserviceonthatmachinedecides.AplaintoolloopgetsthesamedecisionthroughthePythonkit.-Thegatewaysitsinfrontofyour[MCPservers](https://docs.straza.ai/concepts/mcp-apps-and-the-gateway/index.md).AnyMCPclientcanreachtheserversregisteredbehinditwithoutcodeontheagent'sside,andstrazaddecideseachcallthere.-`strazaexec`coversaprocesswithnohook.Itdecidesthecommanditisgivenbeforethatcommandruns.Itdoesnotdecidewhatthatcommandstarts.AnactionthatbypassesallofthemisoutsideStraza'sview.Thegatewayenforcesaboundaryinfrontofaserverthattheagentcannotcalldirectly,becausethedecisionandtheserver'scredentialstaywithstrazad.Ahookinstalledfortheuserisadvisory,andanagentthatcanrunanycommandcanskipit,as[Thesecuritymodel](https://docs.straza.ai/evaluate/security-model/index.md)explains.[Howitworks](https://docs.straza.ai/evaluate/how-it-works/index.md)tracesacallthroughthehookandthroughthegateway.##WhoStrazaisforStrazaisforateamthatrunsAIagentsagainstrealsystemsandwantseachagent'sactionstofollowtherolesitalreadygoverns.Itsserver,strazad,isonestaticbinarywithastandaloneandanenterpriseprofile.Thestandaloneprofilerunsononehost,withSQLiteandaneventbusinsidetheprocess.strazadsignspeopleinitself,andanadminassignsrolesand[sponsors](https://docs.straza.ai/concepts/identities/index.md).Itsuitsadeveloperorasmallteam.ItisalsohowyoutryStrazaonalaptop.TheenterpriseprofilerunsonPostgresandscalesoutonKuberneteswiththeHelmchart.Youridentityprovidercheckssign-in,andyourIGAsendspeople,agents,sponsorsandrolemembershipoverSCIM2.0.ItsuitsanorganizationthatalreadygovernsidentitiesinanIGA.Neitherprofiletiesyoutoavendor.Sign-inisstandardOIDC,withguidesforEntraID,OktaandKeycloak.ProvisioningisstandardSCIM2.0,andtheguidescovermidPoint,OktaandanyotherSCIMclient.RolesaremadeinStraza,andyourIGA,oranadminonstandalone,assignsthem.[IdentityandyourIGA](https://docs.straza.ai/evaluate/identity-and-your-iga/index.md)sayswhichsystemcheckswhat.Strazaisopensource.ItscoreisunderAGPL-3.0-only,andthecodeyoubuildagainst,suchasthespecificationsandtheagentkits,isunderApache-2.0.##WhatStrazadoesnottrytodo-StrazadoesnotreplaceyourIGA.Onenterprise,joiners,moversandleaversstayinyourIGA,andStrazaappliestherolesyourIGAassigns.-Strazadoesnotproxymodeltraffic,sopromptsandcompletionsstayonthestackyoualreadyrununlessapolicyturnsonconversationrecordingatthehook.Everydecisionisdeterministicpolicyevaluation,andnoAImodeltakespartinit.-Amodel'sowncomputationisoutsideStraza'sview.Aninterpretercancomputeanythinginsideitsprocesswithoutadecision.Ascriptanagentwritesandthenrunsisdecidedonlyastheinterpretercallthatstartsit.-Rootonamachinecontrolseveryprocessonit,includingthehook.Anagentwithsudooradministratorrightsonamanagedmachineisoutsidethethreatmodel.-Strazadoesnotcertifycompliance.Itenforcesdecisionsandproducesevidenceyoucanmaptoacontrol.Whetherthatmeetsaregulationisyourassessment,madewiththepeoplewhoanswerforit.Next:[Howitworks](https://docs.straza.ai/evaluate/how-it-works/index.md)



