Skip to content

Commit bead062

Browse files
committed
Initial commit: poimandres theme for opencode.ai
0 parents  commit bead062

File tree

4 files changed

+339
-0
lines changed

4 files changed

+339
-0
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
node_modules/
2+
*.log
3+
.DS_Store
4+
.vscode-test/

.opencode/themes/poimandres.json

Lines changed: 225 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,225 @@
1+
{
2+
"$schema": "https://opencode.ai/theme.json",
3+
"defs": {
4+
"poimandresBg": "#1b1e28",
5+
"poimandresFocus": "#303340",
6+
"poimandresGray": "#a6accd",
7+
"poimandresDarkerGray": "#767c9d",
8+
"poimandresBluishGray": "#506477",
9+
"poimandresOffWhite": "#e4f0fb",
10+
"poimandresBrightMint": "#5DE4c7",
11+
"poimandresLowerMint": "#5fb3a1",
12+
"poimandresLightBlue": "#ADD7FF",
13+
"poimandresLowerBlue": "#89ddff",
14+
"poimandresDesaturatedBlue": "#91B4D5",
15+
"poimandresHotRed": "#d0679d",
16+
"poimandresPink": "#f087bd",
17+
"poimandresBrightYellow": "#fffac2",
18+
"poimandresBluishGrayBrighter": "#7390AA",
19+
"poimandresSelection": "#717cb425",
20+
"poimandresWhite": "#ffffff",
21+
"poimandresBlack": "#000000"
22+
},
23+
"theme": {
24+
"primary": {
25+
"dark": "poimandresLightBlue",
26+
"light": "poimandresLowerBlue"
27+
},
28+
"secondary": {
29+
"dark": "poimandresDesaturatedBlue",
30+
"light": "poimandresDesaturatedBlue"
31+
},
32+
"accent": {
33+
"dark": "poimandresBrightMint",
34+
"light": "poimandresBrightMint"
35+
},
36+
"error": {
37+
"dark": "poimandresHotRed",
38+
"light": "poimandresHotRed"
39+
},
40+
"warning": {
41+
"dark": "poimandresBrightYellow",
42+
"light": "poimandresBrightYellow"
43+
},
44+
"success": {
45+
"dark": "poimandresBrightMint",
46+
"light": "poimandresBrightMint"
47+
},
48+
"info": {
49+
"dark": "poimandresLightBlue",
50+
"light": "poimandresLowerBlue"
51+
},
52+
"text": {
53+
"dark": "poimandresGray",
54+
"light": "poimandresBluishGray"
55+
},
56+
"textMuted": {
57+
"dark": "poimandresDarkerGray",
58+
"light": "poimandresBluishGray"
59+
},
60+
"background": {
61+
"dark": "poimandresBg",
62+
"light": "poimandresOffWhite"
63+
},
64+
"backgroundPanel": {
65+
"dark": "poimandresFocus",
66+
"light": "poimandresBluishGrayBrighter"
67+
},
68+
"backgroundElement": {
69+
"dark": "poimandresFocus",
70+
"light": "poimandresGray"
71+
},
72+
"border": {
73+
"dark": "poimandresBluishGray",
74+
"light": "poimandresDarkerGray"
75+
},
76+
"borderActive": {
77+
"dark": "poimandresDarkerGray",
78+
"light": "poimandresBluishGray"
79+
},
80+
"borderSubtle": {
81+
"dark": "poimandresBluishGray",
82+
"light": "poimandresDarkerGray"
83+
},
84+
"diffAdded": {
85+
"dark": "poimandresBrightMint",
86+
"light": "poimandresBrightMint"
87+
},
88+
"diffRemoved": {
89+
"dark": "poimandresHotRed",
90+
"light": "poimandresHotRed"
91+
},
92+
"diffContext": {
93+
"dark": "poimandresDarkerGray",
94+
"light": "poimandresDarkerGray"
95+
},
96+
"diffHunkHeader": {
97+
"dark": "poimandresDarkerGray",
98+
"light": "poimandresDarkerGray"
99+
},
100+
"diffHighlightAdded": {
101+
"dark": "poimandresBrightMint",
102+
"light": "poimandresBrightMint"
103+
},
104+
"diffHighlightRemoved": {
105+
"dark": "poimandresHotRed",
106+
"light": "poimandresHotRed"
107+
},
108+
"diffAddedBg": {
109+
"dark": "#303340",
110+
"light": "#e4f0fb"
111+
},
112+
"diffRemovedBg": {
113+
"dark": "#303340",
114+
"light": "#e4f0fb"
115+
},
116+
"diffContextBg": {
117+
"dark": "poimandresFocus",
118+
"light": "poimandresBluishGrayBrighter"
119+
},
120+
"diffLineNumber": {
121+
"dark": "poimandresBluishGray",
122+
"light": "poimandresGray"
123+
},
124+
"diffAddedLineNumberBg": {
125+
"dark": "#303340",
126+
"light": "#e4f0fb"
127+
},
128+
"diffRemovedLineNumberBg": {
129+
"dark": "#303340",
130+
"light": "#e4f0fb"
131+
},
132+
"markdownText": {
133+
"dark": "poimandresGray",
134+
"light": "poimandresBluishGray"
135+
},
136+
"markdownHeading": {
137+
"dark": "poimandresLightBlue",
138+
"light": "poimandresLowerBlue"
139+
},
140+
"markdownLink": {
141+
"dark": "poimandresDesaturatedBlue",
142+
"light": "poimandresDesaturatedBlue"
143+
},
144+
"markdownLinkText": {
145+
"dark": "poimandresBrightMint",
146+
"light": "poimandresBrightMint"
147+
},
148+
"markdownCode": {
149+
"dark": "poimandresBrightMint",
150+
"light": "poimandresBrightMint"
151+
},
152+
"markdownBlockQuote": {
153+
"dark": "poimandresDarkerGray",
154+
"light": "poimandresDarkerGray"
155+
},
156+
"markdownEmph": {
157+
"dark": "poimandresPink",
158+
"light": "poimandresPink"
159+
},
160+
"markdownStrong": {
161+
"dark": "poimandresBrightYellow",
162+
"light": "poimandresBrightYellow"
163+
},
164+
"markdownHorizontalRule": {
165+
"dark": "poimandresDarkerGray",
166+
"light": "poimandresDarkerGray"
167+
},
168+
"markdownListItem": {
169+
"dark": "poimandresLightBlue",
170+
"light": "poimandresLowerBlue"
171+
},
172+
"markdownListEnumeration": {
173+
"dark": "poimandresBrightMint",
174+
"light": "poimandresBrightMint"
175+
},
176+
"markdownImage": {
177+
"dark": "poimandresDesaturatedBlue",
178+
"light": "poimandresDesaturatedBlue"
179+
},
180+
"markdownImageText": {
181+
"dark": "poimandresBrightMint",
182+
"light": "poimandresBrightMint"
183+
},
184+
"markdownCodeBlock": {
185+
"dark": "poimandresGray",
186+
"light": "poimandresBluishGray"
187+
},
188+
"syntaxComment": {
189+
"dark": "poimandresDarkerGray",
190+
"light": "poimandresDarkerGray"
191+
},
192+
"syntaxKeyword": {
193+
"dark": "poimandresDesaturatedBlue",
194+
"light": "poimandresDesaturatedBlue"
195+
},
196+
"syntaxFunction": {
197+
"dark": "poimandresLightBlue",
198+
"light": "poimandresLowerBlue"
199+
},
200+
"syntaxVariable": {
201+
"dark": "poimandresBrightMint",
202+
"light": "poimandresBrightMint"
203+
},
204+
"syntaxString": {
205+
"dark": "poimandresBrightMint",
206+
"light": "poimandresBrightMint"
207+
},
208+
"syntaxNumber": {
209+
"dark": "poimandresPink",
210+
"light": "poimandresPink"
211+
},
212+
"syntaxType": {
213+
"dark": "poimandresBrightMint",
214+
"light": "poimandresBrightMint"
215+
},
216+
"syntaxOperator": {
217+
"dark": "poimandresDesaturatedBlue",
218+
"light": "poimandresDesaturatedBlue"
219+
},
220+
"syntaxPunctuation": {
221+
"dark": "poimandresGray",
222+
"light": "poimandresBluishGray"
223+
}
224+
}
225+
}

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 ajaxdude
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
# poimandres theme for opencode.ai
2+
3+
A minimal, frameless dark theme for opencode.ai inspired by the [poimandres](https://github.com/drcmda/poimandres-theme) VS Code theme.
4+
5+
## Features
6+
7+
- Semantic color coding (errors in red, types darker, etc.)
8+
- Minimal visual noise for better focus
9+
- Optimized for truecolor terminals
10+
- Based on the poimandres color palette
11+
12+
## Installation
13+
14+
### Option 1: Project-specific
15+
16+
1. Clone this repository to your project directory:
17+
```bash
18+
git clone https://github.com/ajaxdude/opencode-ai-poimandres-theme.git
19+
```
20+
21+
2. The theme will be automatically available in your project
22+
23+
### Option 2: User-wide
24+
25+
1. Create the themes directory:
26+
```bash
27+
mkdir -p ~/.config/opencode/themes
28+
```
29+
30+
2. Copy the theme file:
31+
```bash
32+
cp poimandres.json ~/.config/opencode/themes/
33+
```
34+
35+
## Usage
36+
37+
### Using the theme
38+
39+
1. Open opencode.ai
40+
2. Type `/theme` and select `poimandres`
41+
3. Or add it to your `opencode.json` config:
42+
43+
```json
44+
{
45+
"$schema": "https://opencode.ai/config.json",
46+
"theme": "poimandres"
47+
}
48+
```
49+
50+
### Terminal Requirements
51+
52+
For best results, ensure your terminal supports **truecolor** (24-bit color):
53+
54+
- Check support: `echo $COLORTERM` (should output `truecolor` or `24bit`)
55+
- Enable if needed: `export COLORTERM=truecolor`
56+
57+
Most modern terminals (iTerm2, Alacritty, Kitty, Windows Terminal, GNOME Terminal) support this by default.
58+
59+
## Color Palette
60+
61+
The theme uses the poimandres color scheme:
62+
63+
- **Background**: `#1b1e28` (dark blue-gray)
64+
- **Primary**: `#ADD7FF` (light blue)
65+
- **Accent**: `#5DE4c7` (bright mint)
66+
- **Error**: `#d0679d` (hot red)
67+
- **Warning**: `#fffac2` (bright yellow)
68+
- **Success**: `#5DE4c7` (bright mint)
69+
70+
## Theme Structure
71+
72+
```
73+
.opencode/themes/
74+
└── poimandres.json # Main theme file
75+
```
76+
77+
The theme follows the opencode.ai JSON theme format with:
78+
- Color definitions in the `defs` section
79+
- Dark/light variants for all colors
80+
- Semantic color mapping for UI elements and syntax highlighting
81+
82+
## License
83+
84+
MIT License - see [LICENSE](LICENSE) file for details.
85+
86+
## Acknowledgments
87+
88+
- Based on [poimandres](https://github.com/drcmda/poimandres-theme) by Paul Henschel
89+
- Originally inspired by [blueberry](https://github.com/peymanslh/vscode-blueberry-dark-theme) theme

0 commit comments

Comments
 (0)