Why Timoni uses CUE and how to get started with the language.
CUE is the configuration language used by Timoni. We chose CUE
due to its expressive syntax, powerful data validation model, and ability to generate
Kubernetes configuration while ensuring the result is consistent and unambiguous.Timoni embeds the CUE engine enabling software vendors to define complex application
deployments packaged as CUE modules. Kubernetes’ operators can then refer to these
modules in their own CUE definitions, allowing them to deploy and manage the lifecycle
of applications in a reliable manner.
CUE stands for Configure, Unify, Execute. The CUE language is a superset of JSON,
it reduces the verbosity of JSON and allows C-style comments.While JSON is a data format, CUE is a data constraint language, allowing embedding logic
within the data using if statements, for loops, comprehensions, string interpolation,
arithmetic operations, regular expressions, and more.CUE can be used for data validation, data templating, configuration, querying,
code generation and even scripting.
What sets CUE apart from other configuration languages is that CUE merges
types, values and constraints into a single concept, think of JSON and JSONSchema all-in-one.What makes CUE the ideal configuration language for Kubernetes is its ability to
import the Kubernetes OpenAPI schema (both for the builtin Kinds and CRDs)
and use it to validate the generated YAML configuration. When writing templates for Kubernetes
with CUE, you can be sure that the generated YAML is valid and will not be rejected by the API server.
Timoni vendor commandsTimoni streamlines the process of importing Kubernetes schemas with the timoni mod vendor commands:
timoni mod vendor k8s imports the schema of Kubernetes builtin Kinds
timoni mod vendor crd imports the schema of Kubernetes CRDs
CUE makes it easy to define complex Kubernetes objects and build abstractions on top of them.
To reduce the boilerplate, CUE allows defining common schemas, constraints and default values
that can be reused across multiple Kubernetes objects.
Timoni CUE definitionsTimoni comes with a set of CUE definitions for the most common Kubernetes constructs, such as
Metadata, Label Selectors, Resource Requirements, Container Images, Image Pull Secrets, and more.
The CUE language was originally developed at Google by Marcel van Lohuizen
who co-created the Borg Configuration Language (BCL). Although CUE is very different from BCL, it
incorporates many of the lessons learned from 15 years of BCL usage.Nowadays, CUE is an independent open source project maintained by a dedicated team,
with a growing community of contributors and users.CUE is licensed under the Apache 2.0 license, the source code is hosted on GitHub
and accepts contributions from the community, for more information see the
contributing guidelines.Everyone is welcome to join the CUE community,
for more information please see the community page.
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Timoni","description":"Timoni is a package manager for Kubernetes powered by CUE lang.","colors":{"primary":"#7e56c2","light":"#a98be0","dark":"#6500b0"},"logo":{"light":"https://mintcdn.com/timoni/8xOqj2ulwazG1u2D/images/logo_text_black.svg?fit=max\u0026auto=format\u0026n=8xOqj2ulwazG1u2D\u0026q=85\u0026s=85ffbf62ec541a621a19255513199222","dark":"https://mintcdn.com/timoni/8xOqj2ulwazG1u2D/images/logo_text_white.svg?fit=max\u0026auto=format\u0026n=8xOqj2ulwazG1u2D\u0026q=85\u0026s=89788f7e520a7c81896a693804eb502d","href":"/"},"favicon":"https://mintcdn.com/timoni/8xOqj2ulwazG1u2D/images/favicon.png?fit=max\u0026auto=format\u0026n=8xOqj2ulwazG1u2D\u0026q=85\u0026s=214f9ea61f808abf055c6211a83d221c","appearance":{"default":"system"},"background":{"decoration":"gradient"},"navbar":{"links":[{"icon":"download","href":"/install","label":"Install"},{"icon":"github-alt","href":"https://github.com/stefanprodan/timoni","label":"GitHub"}]},"footer":{"socials":{"github":"https://github.com/stefanprodan/timoni","slack":"https://cloud-native.slack.com/team/ULPRMFH38","x":"https://x.com/stefanprodan","linkedin":"https://linkedin.com/in/stefanprodan"}},"seo":{"metatags":{"twitter:site":"@stefanprodan","twitter:creator":"@stefanprodan","twitter:card":"summary_large_image"},"indexing":"navigable"},"styling":{"eyebrows":"breadcrumbs","codeblocks":"system","latex":false},"errors":{"404":{"redirect":false,"title":"Page not found","description":"The page you are looking for does not exist or has moved.\n\n\u003cCardGroup cols={2}>\n \u003cCard title=\"Quickstart\" icon=\"rocket\" href=\"/quickstart\">Deploy your first module in minutes.\u003c/Card>\n \u003cCard title=\"Installation\" icon=\"download\" href=\"/install\">Get the Timoni CLI for your OS.\u003c/Card>\n \u003cCard title=\"CUE Reference\" icon=\"code\" href=\"/cue/module/initialization\">Author Timoni modules with CUE.\u003c/Card>\n \u003cCard title=\"CLI Reference\" icon=\"terminal\" href=\"/cmd/timoni\">Every timoni command and flag.\u003c/Card>\n\u003c/CardGroup>\n\nFollowed a broken link? [Open an issue](https://github.com/stefanprodan/timoni/issues) so we can fix it."}},"contextual":{"options":["copy","mcp","view","cursor","vscode"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"timoni","hasAudioNarration":false,"actualSubdomain":"timoni","customDomains":["timoni.sh"],"gitSource":{"type":"github","owner":"stefanprodan","repo":"timoni","deployBranch":"website","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae489bca3eed560d7e508f5","clientVersion":"0.0.4117","searchFilterCounts":[{"language":"default","tag":"CLI Reference","count":49},{"language":"default","tag":"Documentation","count":16},{"language":"default","tag":"CUE Reference","count":14},{"language":"default","tag":"Module","count":13},{"language":"default","tag":"Instance","count":9},{"language":"default","tag":"Module Development","count":9},{"language":"default","tag":"Artifact","count":7},{"language":"default","tag":"Bundle","count":7},{"language":"default","tag":"App Delivery","count":6},{"language":"default","tag":"Integrations","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"[email protected]"}},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"body:has(#timoni-home) #navbar div:has(>.nav-tabs){display:none}#body-content,#navbar>div.mx-auto{max-width:100rem!important}@media (min-width: 1024px){#content-container{max-width:none!important;padding-left:3rem!important}}#header>.text-lg.prose{display:none}body:has(#timoni-home) #body-content{max-width:none!important}.tm-gradient{background:linear-gradient(135deg, #7e56c2 0%, #6500b0 60%, #2b1a4a 100%)}.tm-on-gradient{color:rgba(255, 255, 255, 0.8)}.tm-outline-light{color:#fff;border:1px solid rgba(255, 255, 255, 0.5)}.tm-outline-light:hover{border-color:#fff;background:rgba(255, 255, 255, 0.1)}.tm-band{background:#faf8fd;border-top:1px solid #ebe6f4;border-bottom:1px solid #ebe6f4}html.dark .tm-band{background:rgba(255, 255, 255, 0.025);border-color:rgba(255, 255, 255, 0.07)}.tm-check{display:inline-flex;flex:none;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;margin-top:0.1rem;border-radius:9999px;background:rgba(126, 86, 194, 0.12);color:#7e56c2}.tm-check svg{width:0.65rem!important;height:0.65rem!important}html.dark .tm-check{background:rgba(169, 139, 224, 0.18);color:#a98be0}.tm-diagram-frame{padding:1.25rem;border:1px solid #ebe6f4;border-radius:1rem;background:#fff}html.dark .tm-diagram-frame{border-color:rgba(255, 255, 255, 0.08);background:rgba(255, 255, 255, 0.02)}.tm-footer{border-top:1px solid #ebe6f4}html.dark .tm-footer{border-color:rgba(255, 255, 255, 0.07)}.tm-footer ul a{color:#4b5563}html.dark .tm-footer ul a{color:#9ca3af}.tm-footer ul a:hover{color:#7e56c2}html.dark .tm-footer ul a:hover{color:#a98be0}.tm-footer-bottom{border-top:1px solid #ebe6f4}html.dark .tm-footer-bottom{border-color:rgba(255, 255, 255, 0.07)}.tm-footer-socials{display:inline-flex;gap:1rem}.tm-footer-socials a{color:#6b7280}.tm-footer-socials a:hover{color:#7e56c2}.tm-footer-socials svg{width:1.1rem!important;height:1.1rem!important}#navbar .navbar-link>a{width:30px;height:30px;padding:0;justify-content:center;border-radius:9999px;background:rgba(31, 41, 55, 0.04)}html.dark #navbar .navbar-link>a{background:rgba(255, 255, 255, 0.1)}#navbar .navbar-link>a>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap}#navbar .navbar-link>a>svg{width:1rem;height:1rem;background-color:#4b5563}#navbar .navbar-link>a:hover>svg{background-color:#1f2937}html.dark #navbar .navbar-link>a>svg{background-color:#d1d5db}html.dark #navbar .navbar-link>a:hover>svg{background-color:#f3f4f6}.not-found-container{max-width:44rem!important;padding-top:8rem!important}.not-found-description .card-group{width:100%;text-align:left}.not-found-description .card-group .card{text-align:left}#navbar img.nav-logo{height:30px}[data-component-part=\"card-icon\"] img[src*=\"/images/icons/\"]{object-fit:none;object-position:-9999px -9999px;background-color:rgb(var(--primary));mask-repeat:no-repeat;mask-position:center;mask-size:contain}html.dark [data-component-part=\"card-icon\"] img[src*=\"/images/icons/\"]{background-color:rgb(var(--primary-light))}[data-component-part=\"card-icon\"] img[src*=\"/images/icons/kubernetes.svg\"]{mask-image:url(\"/images/icons/kubernetes.svg\")}[data-component-part=\"card-icon\"] img[src*=\"/images/icons/helm.svg\"]{mask-image:url(\"/images/icons/helm.svg\")}[data-component-part=\"card-icon\"] img[src*=\"/images/icons/cue.svg\"]{mask-image:url(\"/images/icons/cue.svg\")}[data-component-part=\"card-icon\"] img[src*=\"/images/icons/flux.svg\"]{mask-image:url(\"/images/icons/flux.svg\")}img.tm-hero-logo{object-fit:none;object-position:-9999px -9999px;background-color:#111827;mask-image:url(\"/images/logo_icons.svg\");mask-repeat:no-repeat;mask-position:center;mask-size:contain}html.dark img.tm-hero-logo{background-color:#fff}"}],"page":{"pagePath":"cue/introduction","slug":"/cue/introduction","pageMetadata":{"title":"CUE Language","sidebarTitle":"Introduction","description":"Why Timoni uses CUE and how to get started with the language.","href":"/cue/introduction"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Why Timoni uses CUE and how to get started with the language.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Tip}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.a,{href:`https://cuelang.org`,children:`CUE`}),` is the configuration language used by Timoni. We chose CUE\ndue to its expressive syntax, powerful data validation model, and ability to generate\nKubernetes configuration while ensuring the result is consistent and unambiguous.`]}),`\n`,_jsx(_components.p,{children:`Timoni embeds the CUE engine enabling software vendors to define complex application\ndeployments packaged as CUE modules. Kubernetes’ operators can then refer to these\nmodules in their own CUE definitions, allowing them to deploy and manage the lifecycle\nof applications in a reliable manner.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-is-cue`,children:`What is CUE?`}),`\n`,_jsx(_components.p,{children:`CUE stands for Configure, Unify, Execute. The CUE language is a superset of JSON,\nit reduces the verbosity of JSON and allows C-style comments.`}),`\n`,_jsx(_components.p,{children:`While JSON is a data format, CUE is a data constraint language, allowing embedding logic\nwithin the data using if statements, for loops, comprehensions, string interpolation,\narithmetic operations, regular expressions, and more.`}),`\n`,_jsx(_components.p,{children:`CUE can be used for data validation, data templating, configuration, querying,\ncode generation and even scripting.`}),`\n`,_jsx(Heading,{level:`2`,id:`why-cue-for-kubernetes`,children:`Why CUE for Kubernetes?`}),`\n`,_jsx(_components.p,{children:`What sets CUE apart from other configuration languages is that CUE merges\ntypes, values and constraints into a single concept, think of JSON and JSONSchema all-in-one.`}),`\n`,_jsx(_components.p,{children:`What makes CUE the ideal configuration language for Kubernetes is its ability to\nimport the Kubernetes OpenAPI schema (both for the builtin Kinds and CRDs)\nand use it to validate the generated YAML configuration. When writing templates for Kubernetes\nwith CUE, you can be sure that the generated YAML is valid and will not be rejected by the API server.`}),`\n`,_jsxs(Tip,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Timoni vendor commands`})}),_jsxs(_components.p,{children:[`Timoni streamlines the process of importing Kubernetes schemas with the `,_jsx(_components.code,{children:`timoni mod vendor`}),` commands:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`timoni mod vendor k8s`}),` imports the schema of Kubernetes builtin Kinds`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`timoni mod vendor crd`}),` imports the schema of Kubernetes CRDs`]}),`\n`]})]}),`\n`,_jsx(_components.p,{children:`CUE makes it easy to define complex Kubernetes objects and build abstractions on top of them.\nTo reduce the boilerplate, CUE allows defining common schemas, constraints and default values\nthat can be reused across multiple Kubernetes objects.`}),`\n`,_jsxs(Tip,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Timoni CUE definitions`})}),_jsx(_components.p,{children:`Timoni comes with a set of CUE definitions for the most common Kubernetes constructs, such as\nMetadata, Label Selectors, Resource Requirements, Container Images, Image Pull Secrets, and more.`})]}),`\n`,_jsx(Heading,{level:`2`,id:`who-maintains-cue`,children:`Who maintains CUE?`}),`\n`,_jsxs(_components.p,{children:[`The CUE language was originally developed at Google by `,_jsx(_components.a,{href:`https://github.com/mpvl`,children:`Marcel van Lohuizen`}),`\nwho co-created the Borg Configuration Language (BCL). Although CUE is very different from BCL, it\nincorporates many of the lessons learned from 15 years of BCL usage.`]}),`\n`,_jsx(_components.p,{children:`Nowadays, CUE is an independent open source project maintained by a dedicated team,\nwith a growing community of contributors and users.`}),`\n`,_jsxs(_components.p,{children:[`CUE is licensed under the Apache 2.0 license, the source code is hosted on `,_jsx(_components.a,{href:`https://github.com/cue-lang/cue`,children:`GitHub`}),`\nand accepts contributions from the community, for more information see the\n`,_jsx(_components.a,{href:`https://github.com/cue-lang/cue/blob/master/CONTRIBUTING.md`,children:`contributing guidelines`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Everyone is welcome to join the CUE community,\nfor more information please see the `,_jsx(_components.a,{href:`https://cuelang.org/community/`,children:`community page`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"CUE Language","sidebarTitle":"Introduction","description":"Why Timoni uses CUE and how to get started with the language.","href":"/cue/introduction"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What is CUE?","slug":"what-is-cue","depth":2,"children":[]},{"title":"Why CUE for Kubernetes?","slug":"why-cue-for-kubernetes","depth":2,"children":[]},{"title":"Who maintains CUE?","slug":"who-maintains-cue","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"timoni","siteName":"Timoni","title":"CUE Language - Timoni","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-16T14:49:07.789Z","originalFileLocation":"cue/introduction.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Why Timoni uses CUE and how to get started with the language.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Timoni\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/timoni/wBHd5XBsu-JLPEJB/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/timoni/wBHd5XBsu-JLPEJB/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/timoni/wBHd5XBsu-JLPEJB/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/timoni/wBHd5XBsu-JLPEJB/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/timoni/wBHd5XBsu-JLPEJB/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/timoni/wBHd5XBsu-JLPEJB/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/timoni/wBHd5XBsu-JLPEJB/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/timoni/wBHd5XBsu-JLPEJB/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/timoni/wBHd5XBsu-JLPEJB/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"CUE Language - Timoni\">\u003cmeta data-mint-head property=\"og:description\" content=\"Why Timoni uses CUE and how to get started with the language.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Timoni\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://timoni.sh/cue/introduction\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://timoni.mintlify.site/_mintlify/api/og/v2?division=CUE+Language\u0026amp;title=CUE+Language\u0026amp;description=Why+Timoni+uses+CUE+and+how+to+get+started+with+the+language.\u0026amp;theme=75f94fd67070bb6be2c4d855\u0026amp;signature=11168b38d5654b073fea58666084898d81bf1f2c16f71340cdd1410188bf032c\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"CUE Language - Timoni\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Why Timoni uses CUE and how to get started with the language.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://timoni.mintlify.site/_mintlify/api/og/v2?division=CUE+Language\u0026amp;title=CUE+Language\u0026amp;description=Why+Timoni+uses+CUE+and+how+to+get+started+with+the+language.\u0026amp;theme=75f94fd67070bb6be2c4d855\u0026amp;signature=11168b38d5654b073fea58666084898d81bf1f2c16f71340cdd1410188bf032c\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/timoni/wBHd5XBsu-JLPEJB/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Timoni\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7e56c2\">\u003cmeta data-mint-head name=\"twitter:creator\" content=\"@stefanprodan\">\u003clink data-mint-head rel=\"canonical\" href=\"https://timoni.sh/cue/introduction\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/cue/introduction.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://timoni.sh/#organization\",\"name\":\"Timoni\",\"url\":\"https://timoni.sh\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/timoni/8xOqj2ulwazG1u2D/images/logo_text_black.svg?fit=max\u0026auto=format\u0026n=8xOqj2ulwazG1u2D\u0026q=85\u0026s=85ffbf62ec541a621a19255513199222\"}},{\"@type\":\"WebSite\",\"@id\":\"https://timoni.sh#website\",\"name\":\"Timoni\",\"url\":\"https://timoni.sh\",\"publisher\":{\"@id\":\"https://timoni.sh/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://timoni.sh/cue/introduction#webpage\",\"url\":\"https://timoni.sh/cue/introduction\",\"name\":\"CUE Language\",\"description\":\"Why Timoni uses CUE and how to get started with the language.\",\"dateModified\":\"2026-08-16T14:49:07.789Z\",\"isPartOf\":{\"@id\":\"https://timoni.sh#website\"},\"breadcrumb\":{\"@id\":\"https://timoni.sh/cue/introduction#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://timoni.sh/cue/introduction#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Timoni\",\"item\":\"https://timoni.sh\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CUE Language\",\"item\":\"https://timoni.sh/cue/introduction\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://timoni.sh/cue/introduction#article\",\"headline\":\"CUE Language\",\"name\":\"CUE Language\",\"description\":\"Why Timoni uses CUE and how to get started with the language.\",\"url\":\"https://timoni.sh/cue/introduction\",\"mainEntityOfPage\":{\"@id\":\"https://timoni.sh/cue/introduction#webpage\"},\"dateModified\":\"2026-08-16T14:49:07.789Z\",\"publisher\":{\"@id\":\"https://timoni.sh/#organization\"},\"isPartOf\":{\"@id\":\"https://timoni.sh#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Timoni\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Timoni\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/cue/introduction.md","siteName":"Timoni","nav":{"global":null,"tabs":[{"tab":"Documentation","icon":"book-open","pages":[{"title":"Documentation","href":"/quickstart"}]},{"tab":"CUE Reference","icon":"code","groups":[{"group":"CUE Language","pages":[{"title":"CUE Language","sidebarTitle":"Introduction","href":"/cue/introduction"},{"title":"CUE Features Walkthrough","sidebarTitle":"CUE Walkthrough","description":"Learn the core CUE features used to generate Kubernetes objects.","href":"/cue/walkthrough"}]},{"group":"Module Development","pages":[{"title":"Get Started with Timoni Modules","sidebarTitle":"Get started with modules","href":"/cue/module/initialization"},{"title":"Immutable ConfigMaps and Secrets","href":"/cue/module/immutable-config"},{"title":"Embedding files","href":"/cue/module/embedding-files"},{"title":"Kubernetes Custom Resources","sidebarTitle":"Add custom resources","href":"/cue/module/custom-resources"},{"title":"Kubernetes Version Constraints","sidebarTitle":"Cluster version constraints","href":"/cue/module/semver-constraints"},{"title":"Control the Apply Behavior","sidebarTitle":"Control the apply behavior","href":"/cue/module/apply-behavior"},{"title":"Custom Health Checks","sidebarTitle":"Custom health checks","href":"/cue/module/health-checks"},{"title":"Run tests with Kubernetes Jobs","href":"/cue/module/test-jobs"},{"title":"Import Kubernetes Resources from YAML","sidebarTitle":"Import resources from YAML","href":"/cue/module/import-resources"}]},{"group":"Module Distribution","pages":[{"title":"Module Publishing","sidebarTitle":"Publishing module versions","href":"/cue/module/publishing"},{"title":"Module Signing and Verification","sidebarTitle":"Signing and Verification","href":"/cue/module/signing"},{"title":"Module Distribution with GitHub Actions","sidebarTitle":"GitHub Actions","href":"/cue/module/github-actions"}]}]},{"tab":"CLI Reference","icon":"terminal","pages":[{"title":"CLI Reference","href":"/cmd/timoni"}]}]},"basePath":"","title":"CUE Language - Timoni","buildId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","deploymentId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","dynamics":[],"chunks":[]}