Get release asset

Fetch a release asset from GitHub releases with optional theme injection. Defaults to main.user.css if no asset is specified. When a theme is provided, CSS variables from TweakCN are injected into the userstyle.

GET
/release/{tag}

Path Parameters

tagstring

Release tag identifier. Use latest for the most recent release, or a specific version tag like v3.8.10.

Query Parameters

asset?string

Name of the asset file to retrieve from the release. Defaults to main.user.css if not specified.

Default"main.user.css"
theme?string

TweakCN theme identifier for CSS variable injection. Only applies when requesting main.user.css. Browse available themes at https://tweakcn.com/themes.

Match^c[a-z0-9]{24}$

Response Body

application/json

application/json

application/json

curl -X GET "https://coolify-tweaks-api.techwithanirudh.com/release/latest?asset=main.user.css&theme=cmh4ecxjc000404l78qwda7o0"

"/* ==UserStyle==\n@name coolify-tweaks\n@version 3.9.6\n@namespace https://github.com/techwithanirudh\n@author Anirudh Sriram <hello@techwithanirudh.com> (https://github.com/techwithanirudh)\n@homepageURL https://coolify-tweaks.techwithanirudh.com\n@updateURL https://coolify-tweaks-api.techwithanirudh.com/release/latest/?asset=main.user.css\n@description Opinionated tweaks for Coolify: better spacing, layout, and color polish.\n@license MIT\n==/UserStyle== */\n@-moz-document url-prefix(\"https://app.coolify.io/\"), url-prefix(\"http://app.coolify.io/\"), url-prefix(\"https://coolify.local:8000/\"), url-prefix(\"http://coolify.local:8000/\"){@import \"https://fonts.googleapis.com/css2?family=Geist+Mono:wght@100..900&family=Geist:wght@100..900&display=swap\";\n\n/* ==UI-THEME-VARS:START== */\n\n:root {\n  --background: #fdfdfd;\n  --foreground: #000;\n  --card: #fdfdfd;\n  --card-foreground: #000;\n  --popover: #f4f5f7;\n  --popover-foreground: #000;\n  --primary: #7033ff;\n  --primary-foreground: #fff;\n  --secondary: #edf0f4;\n  --secondary-foreground: #080808;\n  --muted: #f5f5f5;\n  --muted-foreground: #525252;\n  --accent: #eceef2;\n  --accent-foreground: #000;\n  --destructive: #e40014;\n  --destructive-foreground: #fff;\n  --border: #e7e7ee;\n  --input: #ebebeb;\n  --ring: #000;\n  --sidebar: #f4f5f7;\n  --sidebar-foreground: #000;\n  --sidebar-primary: #000;\n  --sidebar-primary-foreground: #fff;\n  --sidebar-accent: #ebebeb;\n  --sidebar-accent-foreground: #000;\n  --sidebar-border: #ebebeb;\n  --sidebar-ring: #000;\n  --shadow-2xs: 0px 2px 3px 0px #00000014;\n  --shadow-xs: 0px 2px 3px 0px #00000014;\n  --shadow-sm: 0px 2px 3px 0px #00000029, 0px 1px 2px -1px #00000029;\n  --shadow: 0px 2px 3px 0px #00000029, 0px 1px 2px -1px #00000029;\n  --shadow-md: 0px 2px 3px 0px #00000029, 0px 2px 4px -1px #00000029;\n  --shadow-lg: 0px 2px 3px 0px #00000029, 0px 4px 6px -1px #00000029;\n  --shadow-xl: 0px 2px 3px 0px #00000029, 0px 8px 10px -1px #00000029;\n  --shadow-2xl: 0px 2px 3px 0px #0006;\n  --tracking-normal: -.025em;\n  --spacing: .27rem;\n  --radius: .875rem;\n}\n\n@supports (color: lab(0% 0 0)) {\n  :root {\n    --background: lab(99.304% 0 -.0000119209);\n    --foreground: lab(0% 0 0);\n    --card: lab(99.304% 0 -.0000119209);\n    --card-foreground: lab(0% 0 0);\n    --popover: lab(96.508% -.0796914 -1.09795);\n    --popover-foreground: lab(0% 0 0);\n    --primary: lab(41.276% 61.6029 -92.3266);\n    --primary-foreground: lab(100% 0 0);\n    --secondary: lab(94.6509% -.49904 -2.31887);\n    --secondary-foreground: lab(2.19295% -.00000745058 0);\n    --muted: lab(96.5432% -.0000298023 0);\n    --muted-foreground: lab(34.8776% -.0000149012 0);\n    --accent: lab(94.025% -.154316 -2.1927);\n    --accent-foreground: lab(0% 0 0);\n    --destructive: lab(48.4493% 77.4328 61.5452);\n    --destructive-foreground: lab(100% 0 0);\n    --border: lab(91.7977% .94524 -3.41178);\n    --input: lab(93.0516% -.0000298023 0);\n    --ring: lab(0% 0 0);\n    --sidebar: lab(96.508% -.0796914 -1.09795);\n    --sidebar-foreground: lab(0% 0 0);\n    --sidebar-primary: lab(0% 0 0);\n    --sidebar-primary-foreground: lab(100% 0 0);\n    --sidebar-accent: lab(93.0516% -.0000298023 0);\n    --sidebar-accent-foreground: lab(0% 0 0);\n    --sidebar-border: lab(93.0516% -.0000298023 0);\n    --sidebar-ring: lab(0% 0 0);\n  }\n}\n\n.dark {\n  --background: #1f1c23;\n  --foreground: #fdfdfc;\n  --card: #353239;\n  --card-foreground: #fcfafc;\n  --popover: #1a191f;\n  --popover-foreground: #f0f0f0;\n  --primary: #483492;\n  --primary-foreground: #fff;\n  --secondary: #2a2c33;\n  --secondary-foreground: #f0f0f0;\n  --muted: #2a2c33;\n  --muted-foreground: #a0a0a0;\n  --accent: #2a292e;\n  --accent-foreground: #ceced0;\n  --destructive: #ff6568;\n  --destructive-foreground: #fff;\n  --border: #38353b;\n  --input: #38353b;\n  --ring: #8c5cff;\n  --sidebar: #1a191f;\n  --sidebar-foreground: #fbfafc;\n  --sidebar-primary: #2a292e;\n  --sidebar-primary-foreground: #fff;\n  --sidebar-accent: #2a292e;\n  --sidebar-accent-foreground: #fbf9fb;\n  --sidebar-border: #33353a;\n  --sidebar-ring: #8c5cff;\n  --shadow-2xs: 0px 2px 3px 0px #00000014;\n  --shadow-xs: 0px 2px 3px 0px #00000014;\n  --shadow-sm: 0px 2px 3px 0px #00000029, 0px 1px 2px -1px #00000029;\n  --shadow: 0px 2px 3px 0px #00000029, 0px 1px 2px -1px #00000029;\n  --shadow-md: 0px 2px 3px 0px #00000029, 0px 2px 4px -1px #00000029;\n  --shadow-lg: 0px 2px 3px 0px #00000029, 0px 4px 6px -1px #00000029;\n  --shadow-xl: 0px 2px 3px 0px #00000029, 0px 8px 10px -1px #00000029;\n  --shadow-2xl: 0px 2px 3px 0px #0006;\n}\n\n@supports (color: lab(0% 0 0)) {\n  .dark {\n    --background: lab(10.8451% 2.84829 -4.27331);\n    --foreground: lab(99.292% -.128835 .473607);\n    --card: lab(21.3129% 2.60812 -3.94655);\n    --card-foreground: lab(98.4697% .956982 -.721276);\n    --popover: lab(9.07116% 1.71524 -4.00495);\n    --popover-foreground: lab(94.7916% -.0000298023 0);\n    --primary: lab(28.5039% 28.6027 -49.9206);\n    --primary-foreground: lab(100% 0 0);\n    --secondary: lab(18.0168% .439614 -4.84897);\n    --secondary-foreground: lab(94.7916% -.0000298023 0);\n    --muted: lab(18.0168% .439614 -4.84897);\n    --muted-foreground: lab(65.8728% .0000298023 -.0000119209);\n    --accent: lab(16.8478% 1.38634 -3.08989);\n    --accent-foreground: lab(82.8086% .269026 -.982189);\n    --destructive: lab(63.7053% 60.745 31.3109);\n    --destructive-foreground: lab(100% 0 0);\n    --border: lab(22.6425% 2.38898 -3.2687);\n    --input: lab(22.6425% 2.38898 -3.2687);\n    --ring: lab(51.3492% 47.9995 -75.7176);\n    --sidebar: lab(9.07116% 1.71524 -4.00495);\n    --sidebar-foreground: lab(98.3888% .598282 -.828302);\n    --sidebar-primary: lab(16.8478% 1.38634 -3.08989);\n    --sidebar-primary-foreground: lab(100% 0 0);\n    --sidebar-accent: lab(16.8478% 1.38634 -3.08989);\n    --sidebar-accent-foreground: lab(98.1217% .957042 -.721276);\n    --sidebar-border: lab(22.1025% .0234395 -3.45786);\n    --sidebar-ring: lab(51.3492% 47.9995 -75.7176);\n  }\n}\n\n/* ==UI-THEME-VARS:END== */"

{
  "error": true,
  "url": "http://localhost:3001/release/latest",
  "status": 400,
  "statusText": "Bad Request",
  "message": "Invalid input",
  "data": {
    "field": "tag"
  }
}

{
  "error": true,
  "url": "http://localhost:3001/release/latest?theme=invalid123",
  "status": 404,
  "statusText": "Not Found",
  "message": "Theme not found: invalid123"
}

{
  "error": true,
  "url": "http://localhost:3001/release/latest",
  "status": 500,
  "statusText": "Internal Server Error",
  "message": "Unknown error",
  "data": {
    "url": "https://github.com/techwithanirudh/coolify-tweaks/releases/latest/download/main.user.css",
    "tag": "latest"
  }
}

Last updated on