Skip to content

Configuration

Kimesh uses a kimesh.config.ts file at the root of your project. This file is loaded using c12 and provides type-safe configuration with full TypeScript support.

Minimal Configuration

ts
// kimesh.config.ts
import { defineKmConfig } from '@kimesh/kit'

export default defineKmConfig({
  name: 'my-app',
})

That's it! Kimesh works with sensible defaults. No configuration is technically required — just create src/routes/ and start adding .vue files.

Common Options

Development Server

ts
export default defineKmConfig({
  dev: {
    port: 3000,
    host: 'localhost',
    open: true,       // Auto-open browser
  },
})

Head Management

ts
export default defineKmConfig({
  app: {
    head: {
      title: 'My Application',
      titleTemplate: '%s | My App',
      meta: [
        { charset: 'utf-8' },
        { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      ],
      htmlAttrs: { lang: 'en' },
    },
  },
})

Modules

ts
import tailwindcss from '@kimesh/tailwindcss'
import shadcn from '@kimesh/shadcn'

export default defineKmConfig({
  modules: [
    tailwindcss,
    [shadcn, { prefix: 'Ui' }],
  ],
})

Layers

ts
export default defineKmConfig({
  extends: [
    './layers/ui-layer',       // Local layer
    '@my-org/base-layer',      // npm package
  ],
})

Runtime Config

ts
export default defineKmConfig({
  runtimeConfig: {
    apiBase: '/api',          // Override with KIMESH_API_BASE env var
    features: {
      darkMode: true,
    },
  },
})

Access in your components:

vue
<script setup>
// useRuntimeConfig is auto-imported
const config = useRuntimeConfig()
console.log(config.apiBase)
</script>

Custom Aliases

ts
import { fileURLToPath } from 'node:url'

export default defineKmConfig({
  alias: {
    images: fileURLToPath(new URL('./assets/images', import.meta.url)),
  },
})

Default aliases (~, @, ~~, @@, #build) are always available.

Configuration Files

Kimesh looks for configuration in this order:

  1. kimesh.config.ts
  2. kimesh.config.js
  3. kimesh.config.mjs
  4. kimesh.config.cjs

Next Steps

Released under the MIT License.