| 
									
										
										
										
											2025-02-27 09:34:55 +13:00
										 |  |  | --- | 
					
						
							| 
									
										
										
										
											2025-03-11 08:03:49 -07:00
										 |  |  | title: "KCL Settings" | 
					
						
							| 
									
										
										
										
											2025-02-27 09:34:55 +13:00
										 |  |  | excerpt: "Documentation of settings for the KCL language and Zoo Modeling App." | 
					
						
							|  |  |  | layout: manual | 
					
						
							|  |  |  | --- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-10 18:59:10 -07:00
										 |  |  | # KCL Settings
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | There are three levels of settings available in the KittyCAD modeling application: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-11 10:20:18 -07:00
										 |  |  | 1. [User Settings](/docs/kcl/settings/user): Global settings that apply to all projects, stored in `user.toml` | 
					
						
							|  |  |  | 2. [Project Settings](/docs/kcl/settings/project): Settings specific to a project, stored in `project.toml` | 
					
						
							| 
									
										
										
										
											2025-03-10 18:59:10 -07:00
										 |  |  | 3. Per-file Settings: Settings that apply to a single KCL file, specified using the `@settings` attribute | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Configuration Files
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The KittyCAD modeling app uses TOML files for configuration: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-11 10:20:18 -07:00
										 |  |  | * **User Settings**: `user.toml` - See [complete documentation](/docs/kcl/settings/user) | 
					
						
							|  |  |  | * **Project Settings**: `project.toml` - See [complete documentation](/docs/kcl/settings/project) | 
					
						
							| 
									
										
										
										
											2025-03-10 18:59:10 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## Per-file settings
 | 
					
						
							| 
									
										
										
										
											2025-02-27 09:34:55 +13:00
										 |  |  | 
 | 
					
						
							|  |  |  | Settings which affect a single file are configured using the settings attribute. | 
					
						
							|  |  |  | This must be at the top of the KCL file (comments before the attribute are permitted). | 
					
						
							| 
									
										
										
										
											2025-03-10 18:59:10 -07:00
										 |  |  | For example: | 
					
						
							| 
									
										
										
										
											2025-02-27 09:34:55 +13:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-10 18:59:10 -07:00
										 |  |  | ```js | 
					
						
							| 
									
										
										
										
											2025-02-27 09:34:55 +13:00
										 |  |  | // The settings attribute. | 
					
						
							|  |  |  | @settings(defaultLengthUnit = in) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // The rest of your KCL code goes below... | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | x = 42 // Represents 42 inches. | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The settings attribute may contain multiple properties separated by commas. | 
					
						
							|  |  |  | Valid properties are: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - `defaultLengthUnit`: the default length unit to use for numbers declared in this file. | 
					
						
							|  |  |  |   - Accepted values: `mm`, `cm`, `m`, `in` (inches), `ft` (feet), `yd` (yards). | 
					
						
							|  |  |  | - `defaultAngleUnit`: the default angle unit to use for numbers declared in this file. | 
					
						
							|  |  |  |   - Accepted values: `deg` (degrees), `rad` (radians). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | These settings override any project-wide settings (configured in project.toml or via the UI). |