diff --git a/README.md b/README.md
index ecb234a..bbe5ec7 100644
--- a/README.md
+++ b/README.md
@@ -354,6 +354,7 @@ local zen_colors = require("kanso.colors").setup({ theme = 'zen' })
- [Zathura](extras/zathura/)
- [Zellij](extras/zellij/)
- [Windows Terminal](extras/windows-terminal/)
+- [Codex](extras/codex/)
- [Kansō for VS Code](https://marketplace.visualstudio.com/items?itemName=webhooked.kanso-theme)
- [Kansō for Zed](https://github.com/webhooked/kanso-zed)
- [Kansō for OpenCode](extras/opencode/)
diff --git a/extras/codex/kanso-ink.tmTheme b/extras/codex/kanso-ink.tmTheme
new file mode 100644
index 0000000..4c96fed
--- /dev/null
+++ b/extras/codex/kanso-ink.tmTheme
@@ -0,0 +1,340 @@
+
+
+
+
+ name
+ Kanso Ink
+ author
+ webhooked/kanso.nvim (TextMate adaptation for Codex)
+ semanticClass
+ theme.dark.kanso-ink
+ colorSpaceName
+ sRGB
+ settings
+
+
+ settings
+
+ background
+ #14171D
+ foreground
+ #C5C9C7
+ caret
+ #F2F1EF
+ invisibles
+ #4B4E57
+ lineHighlight
+ #1F1F26
+ selection
+ #393B44
+ selectionBorder
+ #22262D
+ findHighlight
+ #2D4F67
+ findHighlightForeground
+ #F2F1EF
+ gutter
+ #14171D
+ gutterForeground
+ #717C7C
+
+
+
+
+ name
+ Comment
+ scope
+ comment, punctuation.definition.comment
+ settings
+
+ foreground
+ #75797F
+ fontStyle
+ italic
+
+
+
+
+ name
+ Keyword
+ scope
+ keyword, storage.modifier, storage.control, keyword.control, keyword.operator.new
+ settings
+
+ foreground
+ #8992A7
+
+
+
+
+ name
+ Type
+ scope
+ storage.type, support.type, entity.name.type, entity.name.class, entity.other.inherited-class
+ settings
+
+ foreground
+ #8EA4A2
+
+
+
+
+ name
+ Function
+ scope
+ entity.name.function, support.function, meta.function-call, variable.function
+ settings
+
+ foreground
+ #8BA4B0
+
+
+
+
+ name
+ Variable
+ scope
+ variable, support.variable, meta.definition.variable
+ settings
+
+ foreground
+ #C5C9C7
+
+
+
+
+ name
+ Parameter
+ scope
+ variable.parameter, variable.other.readwrite
+ settings
+
+ foreground
+ #909398
+
+
+
+
+ name
+ String
+ scope
+ string, punctuation.definition.string, meta.interpolation
+ settings
+
+ foreground
+ #8A9A7B
+
+
+
+
+ name
+ Number
+ scope
+ constant.numeric, constant.language.boolean, constant.language.null
+ settings
+
+ foreground
+ #A292A3
+
+
+
+
+ name
+ Constant
+ scope
+ constant, support.constant, variable.other.constant
+ settings
+
+ foreground
+ #B6927B
+
+
+
+
+ name
+ Regex / Escape
+ scope
+ string.regexp, constant.character.escape, punctuation.definition.escape
+ settings
+
+ foreground
+ #C4746E
+
+
+
+
+ name
+ Operator
+ scope
+ keyword.operator, punctuation.separator, punctuation.terminator
+ settings
+
+ foreground
+ #909398
+
+
+
+
+ name
+ Punctuation
+ scope
+ punctuation
+ settings
+
+ foreground
+ #909398
+
+
+
+
+ name
+ Property / Field
+ scope
+ meta.object-literal.key, variable.other.property, support.variable.property, entity.other.attribute-name
+ settings
+
+ foreground
+ #C4B28A
+
+
+
+
+ name
+ Invalid / Deprecated
+ scope
+ invalid, invalid.deprecated, markup.deleted.git_gutter
+ settings
+
+ foreground
+ #717C7C
+ fontStyle
+ strikethrough
+
+
+
+
+ name
+ Markdown Heading
+ scope
+ markup.heading, entity.name.section
+ settings
+
+ foreground
+ #8992A7
+ fontStyle
+ bold
+
+
+
+
+ name
+ Markdown Bold
+ scope
+ markup.bold
+ settings
+
+ foreground
+ #8992A7
+ fontStyle
+ bold
+
+
+
+
+ name
+ Markdown Italic
+ scope
+ markup.italic
+ settings
+
+ foreground
+ #C4B28A
+ fontStyle
+ italic
+
+
+
+
+ name
+ Markdown Code
+ scope
+ markup.inline.raw, markup.raw.block, fenced_code.block.language, markup.fenced_code.block
+ settings
+
+ foreground
+ #8A9A7B
+
+
+
+
+ name
+ Markdown Quote
+ scope
+ markup.quote
+ settings
+
+ foreground
+ #A4A7A4
+ fontStyle
+ italic
+
+
+
+
+ name
+ Markdown Link
+ scope
+ markup.underline.link, string.other.link, meta.link.inline, markup.link
+ settings
+
+ foreground
+ #8BA4B0
+ fontStyle
+ underline
+
+
+
+
+ name
+ Diff Added
+ scope
+ markup.inserted, markup.inserted.diff, meta.diff.header.from-file
+ settings
+
+ foreground
+ #76946A
+ background
+ #2B3328
+
+
+
+
+ name
+ Diff Removed
+ scope
+ markup.deleted, markup.deleted.diff, meta.diff.header.to-file
+ settings
+
+ foreground
+ #C34043
+ background
+ #43242B
+
+
+
+
+ name
+ Diff Changed
+ scope
+ markup.changed, markup.changed.diff
+ settings
+
+ foreground
+ #DCA561
+ background
+ #49443C
+
+
+
+
+
diff --git a/extras/codex/kanso-mist.tmTheme b/extras/codex/kanso-mist.tmTheme
new file mode 100644
index 0000000..0c719a0
--- /dev/null
+++ b/extras/codex/kanso-mist.tmTheme
@@ -0,0 +1,340 @@
+
+
+
+
+ name
+ Kanso Mist
+ author
+ webhooked/kanso.nvim (TextMate adaptation for Codex)
+ semanticClass
+ theme.dark.kanso-mist
+ colorSpaceName
+ sRGB
+ settings
+
+
+ settings
+
+ background
+ #22262D
+ foreground
+ #C5C9C7
+ caret
+ #F2F1EF
+ invisibles
+ #5C6066
+ lineHighlight
+ #2A2C35
+ selection
+ #393B44
+ selectionBorder
+ #393B44
+ findHighlight
+ #2D4F67
+ findHighlightForeground
+ #F2F1EF
+ gutter
+ #22262D
+ gutterForeground
+ #5C6066
+
+
+
+
+ name
+ Comment
+ scope
+ comment, punctuation.definition.comment
+ settings
+
+ foreground
+ #75797F
+ fontStyle
+ italic
+
+
+
+
+ name
+ Keyword
+ scope
+ keyword, storage.modifier, storage.control, keyword.control, keyword.operator.new
+ settings
+
+ foreground
+ #8992A7
+
+
+
+
+ name
+ Type
+ scope
+ storage.type, support.type, entity.name.type, entity.name.class, entity.other.inherited-class
+ settings
+
+ foreground
+ #8EA4A2
+
+
+
+
+ name
+ Function
+ scope
+ entity.name.function, support.function, meta.function-call, variable.function
+ settings
+
+ foreground
+ #8BA4B0
+
+
+
+
+ name
+ Variable
+ scope
+ variable, support.variable, meta.definition.variable
+ settings
+
+ foreground
+ #C5C9C7
+
+
+
+
+ name
+ Parameter
+ scope
+ variable.parameter, variable.other.readwrite
+ settings
+
+ foreground
+ #909398
+
+
+
+
+ name
+ String
+ scope
+ string, punctuation.definition.string, meta.interpolation
+ settings
+
+ foreground
+ #8A9A7B
+
+
+
+
+ name
+ Number
+ scope
+ constant.numeric, constant.language.boolean, constant.language.null
+ settings
+
+ foreground
+ #A292A3
+
+
+
+
+ name
+ Constant
+ scope
+ constant, support.constant, variable.other.constant
+ settings
+
+ foreground
+ #B6927B
+
+
+
+
+ name
+ Regex / Escape
+ scope
+ string.regexp, constant.character.escape, punctuation.definition.escape
+ settings
+
+ foreground
+ #C4746E
+
+
+
+
+ name
+ Operator
+ scope
+ keyword.operator, punctuation.separator, punctuation.terminator
+ settings
+
+ foreground
+ #909398
+
+
+
+
+ name
+ Punctuation
+ scope
+ punctuation
+ settings
+
+ foreground
+ #909398
+
+
+
+
+ name
+ Property / Field
+ scope
+ meta.object-literal.key, variable.other.property, support.variable.property, entity.other.attribute-name
+ settings
+
+ foreground
+ #C4B28A
+
+
+
+
+ name
+ Invalid / Deprecated
+ scope
+ invalid, invalid.deprecated, markup.deleted.git_gutter
+ settings
+
+ foreground
+ #717C7C
+ fontStyle
+ strikethrough
+
+
+
+
+ name
+ Markdown Heading
+ scope
+ markup.heading, entity.name.section
+ settings
+
+ foreground
+ #8992A7
+ fontStyle
+ bold
+
+
+
+
+ name
+ Markdown Bold
+ scope
+ markup.bold
+ settings
+
+ foreground
+ #8992A7
+ fontStyle
+ bold
+
+
+
+
+ name
+ Markdown Italic
+ scope
+ markup.italic
+ settings
+
+ foreground
+ #C4B28A
+ fontStyle
+ italic
+
+
+
+
+ name
+ Markdown Code
+ scope
+ markup.inline.raw, markup.raw.block, fenced_code.block.language, markup.fenced_code.block
+ settings
+
+ foreground
+ #8A9A7B
+
+
+
+
+ name
+ Markdown Quote
+ scope
+ markup.quote
+ settings
+
+ foreground
+ #A4A7A4
+ fontStyle
+ italic
+
+
+
+
+ name
+ Markdown Link
+ scope
+ markup.underline.link, string.other.link, meta.link.inline, markup.link
+ settings
+
+ foreground
+ #8BA4B0
+ fontStyle
+ underline
+
+
+
+
+ name
+ Diff Added
+ scope
+ markup.inserted, markup.inserted.diff, meta.diff.header.from-file
+ settings
+
+ foreground
+ #76946A
+ background
+ #2B3328
+
+
+
+
+ name
+ Diff Removed
+ scope
+ markup.deleted, markup.deleted.diff, meta.diff.header.to-file
+ settings
+
+ foreground
+ #C34043
+ background
+ #43242B
+
+
+
+
+ name
+ Diff Changed
+ scope
+ markup.changed, markup.changed.diff
+ settings
+
+ foreground
+ #DCA561
+ background
+ #49443C
+
+
+
+
+
diff --git a/extras/codex/kanso-pearl.tmTheme b/extras/codex/kanso-pearl.tmTheme
new file mode 100644
index 0000000..07546bc
--- /dev/null
+++ b/extras/codex/kanso-pearl.tmTheme
@@ -0,0 +1,340 @@
+
+
+
+
+ name
+ Kanso Pearl
+ author
+ webhooked/kanso.nvim (TextMate adaptation for Codex)
+ semanticClass
+ theme.light.kanso-pearl
+ colorSpaceName
+ sRGB
+ settings
+
+
+ settings
+
+ background
+ #F2F1EF
+ foreground
+ #22262D
+ caret
+ #22262D
+ invisibles
+ #CACAC7
+ lineHighlight
+ #E2E1DF
+ selection
+ #DDDDDB
+ selectionBorder
+ #E2E1DF
+ findHighlight
+ #B5CBD2
+ findHighlightForeground
+ #22262D
+ gutter
+ #F2F1EF
+ gutterForeground
+ #A09CAC
+
+
+
+
+ name
+ Comment
+ scope
+ comment, punctuation.definition.comment
+ settings
+
+ foreground
+ #6D6D69
+ fontStyle
+ italic
+
+
+
+
+ name
+ Keyword
+ scope
+ keyword, storage.modifier, storage.control, keyword.control, keyword.operator.new
+ settings
+
+ foreground
+ #624C83
+
+
+
+
+ name
+ Type
+ scope
+ storage.type, support.type, entity.name.type, entity.name.class, entity.other.inherited-class
+ settings
+
+ foreground
+ #597B75
+
+
+
+
+ name
+ Function
+ scope
+ entity.name.function, support.function, meta.function-call, variable.function
+ settings
+
+ foreground
+ #4D699B
+
+
+
+
+ name
+ Variable
+ scope
+ variable, support.variable, meta.definition.variable
+ settings
+
+ foreground
+ #22262D
+
+
+
+
+ name
+ Parameter
+ scope
+ variable.parameter, variable.other.readwrite
+ settings
+
+ foreground
+ #5D57A3
+
+
+
+
+ name
+ String
+ scope
+ string, punctuation.definition.string, meta.interpolation
+ settings
+
+ foreground
+ #6F894E
+
+
+
+
+ name
+ Number
+ scope
+ constant.numeric, constant.language.boolean, constant.language.null
+ settings
+
+ foreground
+ #B35B79
+
+
+
+
+ name
+ Constant
+ scope
+ constant, support.constant, variable.other.constant
+ settings
+
+ foreground
+ #CC6D00
+
+
+
+
+ name
+ Regex / Escape
+ scope
+ string.regexp, constant.character.escape, punctuation.definition.escape
+ settings
+
+ foreground
+ #836F4A
+
+
+
+
+ name
+ Operator
+ scope
+ keyword.operator, punctuation.separator, punctuation.terminator
+ settings
+
+ foreground
+ #6D6D69
+
+
+
+
+ name
+ Punctuation
+ scope
+ punctuation
+ settings
+
+ foreground
+ #6D6D69
+
+
+
+
+ name
+ Property / Field
+ scope
+ meta.object-literal.key, variable.other.property, support.variable.property, entity.other.attribute-name
+ settings
+
+ foreground
+ #77713F
+
+
+
+
+ name
+ Invalid / Deprecated
+ scope
+ invalid, invalid.deprecated, markup.deleted.git_gutter
+ settings
+
+ foreground
+ #6D6D69
+ fontStyle
+ strikethrough
+
+
+
+
+ name
+ Markdown Heading
+ scope
+ markup.heading, entity.name.section
+ settings
+
+ foreground
+ #624C83
+ fontStyle
+ bold
+
+
+
+
+ name
+ Markdown Bold
+ scope
+ markup.bold
+ settings
+
+ foreground
+ #624C83
+ fontStyle
+ bold
+
+
+
+
+ name
+ Markdown Italic
+ scope
+ markup.italic
+ settings
+
+ foreground
+ #77713F
+ fontStyle
+ italic
+
+
+
+
+ name
+ Markdown Code
+ scope
+ markup.inline.raw, markup.raw.block, fenced_code.block.language, markup.fenced_code.block
+ settings
+
+ foreground
+ #6F894E
+
+
+
+
+ name
+ Markdown Quote
+ scope
+ markup.quote
+ settings
+
+ foreground
+ #545464
+ fontStyle
+ italic
+
+
+
+
+ name
+ Markdown Link
+ scope
+ markup.underline.link, string.other.link, meta.link.inline, markup.link
+ settings
+
+ foreground
+ #4D699B
+ fontStyle
+ underline
+
+
+
+
+ name
+ Diff Added
+ scope
+ markup.inserted, markup.inserted.diff, meta.diff.header.from-file
+ settings
+
+ foreground
+ #6E915F
+ background
+ #B7D0AE
+
+
+
+
+ name
+ Diff Removed
+ scope
+ markup.deleted, markup.deleted.diff, meta.diff.header.to-file
+ settings
+
+ foreground
+ #D7474B
+ background
+ #D9A594
+
+
+
+
+ name
+ Diff Changed
+ scope
+ markup.changed, markup.changed.diff
+ settings
+
+ foreground
+ #E98A00
+ background
+ #D7E3D8
+
+
+
+
+
diff --git a/extras/codex/kanso-zen.tmTheme b/extras/codex/kanso-zen.tmTheme
new file mode 100644
index 0000000..16cdfa1
--- /dev/null
+++ b/extras/codex/kanso-zen.tmTheme
@@ -0,0 +1,340 @@
+
+
+
+
+ name
+ Kanso Zen
+ author
+ webhooked/kanso.nvim (TextMate adaptation for Codex)
+ semanticClass
+ theme.dark.kanso-zen
+ colorSpaceName
+ sRGB
+ settings
+
+
+ settings
+
+ background
+ #090E13
+ foreground
+ #C5C9C7
+ caret
+ #F2F1EF
+ invisibles
+ #5C6066
+ lineHighlight
+ #1C1E25
+ selection
+ #393B44
+ selectionBorder
+ #22262D
+ findHighlight
+ #2D4F67
+ findHighlightForeground
+ #F2F1EF
+ gutter
+ #090E13
+ gutterForeground
+ #717C7C
+
+
+
+
+ name
+ Comment
+ scope
+ comment, punctuation.definition.comment
+ settings
+
+ foreground
+ #75797F
+ fontStyle
+ italic
+
+
+
+
+ name
+ Keyword
+ scope
+ keyword, storage.modifier, storage.control, keyword.control, keyword.operator.new
+ settings
+
+ foreground
+ #8992A7
+
+
+
+
+ name
+ Type
+ scope
+ storage.type, support.type, entity.name.type, entity.name.class, entity.other.inherited-class
+ settings
+
+ foreground
+ #8EA4A2
+
+
+
+
+ name
+ Function
+ scope
+ entity.name.function, support.function, meta.function-call, variable.function
+ settings
+
+ foreground
+ #8BA4B0
+
+
+
+
+ name
+ Variable
+ scope
+ variable, support.variable, meta.definition.variable
+ settings
+
+ foreground
+ #C5C9C7
+
+
+
+
+ name
+ Parameter
+ scope
+ variable.parameter, variable.other.readwrite
+ settings
+
+ foreground
+ #909398
+
+
+
+
+ name
+ String
+ scope
+ string, punctuation.definition.string, meta.interpolation
+ settings
+
+ foreground
+ #8A9A7B
+
+
+
+
+ name
+ Number
+ scope
+ constant.numeric, constant.language.boolean, constant.language.null
+ settings
+
+ foreground
+ #A292A3
+
+
+
+
+ name
+ Constant
+ scope
+ constant, support.constant, variable.other.constant
+ settings
+
+ foreground
+ #B6927B
+
+
+
+
+ name
+ Regex / Escape
+ scope
+ string.regexp, constant.character.escape, punctuation.definition.escape
+ settings
+
+ foreground
+ #C4746E
+
+
+
+
+ name
+ Operator
+ scope
+ keyword.operator, punctuation.separator, punctuation.terminator
+ settings
+
+ foreground
+ #909398
+
+
+
+
+ name
+ Punctuation
+ scope
+ punctuation
+ settings
+
+ foreground
+ #909398
+
+
+
+
+ name
+ Property / Field
+ scope
+ meta.object-literal.key, variable.other.property, support.variable.property, entity.other.attribute-name
+ settings
+
+ foreground
+ #C4B28A
+
+
+
+
+ name
+ Invalid / Deprecated
+ scope
+ invalid, invalid.deprecated, markup.deleted.git_gutter
+ settings
+
+ foreground
+ #717C7C
+ fontStyle
+ strikethrough
+
+
+
+
+ name
+ Markdown Heading
+ scope
+ markup.heading, entity.name.section
+ settings
+
+ foreground
+ #8992A7
+ fontStyle
+ bold
+
+
+
+
+ name
+ Markdown Bold
+ scope
+ markup.bold
+ settings
+
+ foreground
+ #8992A7
+ fontStyle
+ bold
+
+
+
+
+ name
+ Markdown Italic
+ scope
+ markup.italic
+ settings
+
+ foreground
+ #C4B28A
+ fontStyle
+ italic
+
+
+
+
+ name
+ Markdown Code
+ scope
+ markup.inline.raw, markup.raw.block, fenced_code.block.language, markup.fenced_code.block
+ settings
+
+ foreground
+ #8A9A7B
+
+
+
+
+ name
+ Markdown Quote
+ scope
+ markup.quote
+ settings
+
+ foreground
+ #A4A7A4
+ fontStyle
+ italic
+
+
+
+
+ name
+ Markdown Link
+ scope
+ markup.underline.link, string.other.link, meta.link.inline, markup.link
+ settings
+
+ foreground
+ #8BA4B0
+ fontStyle
+ underline
+
+
+
+
+ name
+ Diff Added
+ scope
+ markup.inserted, markup.inserted.diff, meta.diff.header.from-file
+ settings
+
+ foreground
+ #76946A
+ background
+ #2B3328
+
+
+
+
+ name
+ Diff Removed
+ scope
+ markup.deleted, markup.deleted.diff, meta.diff.header.to-file
+ settings
+
+ foreground
+ #C34043
+ background
+ #43242B
+
+
+
+
+ name
+ Diff Changed
+ scope
+ markup.changed, markup.changed.diff
+ settings
+
+ foreground
+ #DCA561
+ background
+ #49443C
+
+
+
+
+