Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
[English](README.en.md) · [工作原理](docs/how-it-works.zh-CN.md) · [MIT License](LICENSE)

<p align="center">
<img src="assets/app-icon-source.png" width="150" alt="Codex Helper 图标">
<a href="assets/marketing-v0.7.1/codex-helper-promo-zh.mp4">
<img src="assets/marketing-v0.7.1/codex-helper-poster-zh.webp" width="620" alt="Codex Helper 宣传图">
</a>
</p>

一个开源的 macOS Codex 辅助工具。直接查看剩余额度,并在模型满载时安全续跑原任务。
Expand All @@ -17,9 +19,7 @@
- 模型满载后自动定位并重试原 Codex 任务
- 中英文、自动更新、Codex 官方动态与文档入口

<p align="center">
<img src="assets/status-rail-v0.6.0.webp" width="520" alt="Codex Helper 悬浮状态轨道">
</p>
点击上方宣传图可查看 15 秒产品短片(无配音,轻音乐)。

## 安装

Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/marketing-v0.7.1/codex-helper-promo-zh.mp4
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
149 changes: 149 additions & 0 deletions assets/marketing-v0.7.1/source/poster-detail.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=1080, initial-scale=1" />
<style>
* { box-sizing: border-box; }
html, body { margin: 0; width: 1080px; height: 1440px; overflow: hidden; }
body {
font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "PingFang SC", sans-serif;
color: #f7f4ed;
background: #0d1413;
}
.poster {
position: relative;
width: 1080px;
height: 1440px;
overflow: hidden;
background:
radial-gradient(circle at 83% 12%, rgba(248,151,28,.22), transparent 26%),
radial-gradient(circle at 18% 78%, rgba(17,161,136,.22), transparent 33%),
linear-gradient(155deg, #101817 0%, #111b19 42%, #1d211b 100%);
}
.orbit {
position: absolute;
width: 740px;
height: 740px;
right: -320px;
top: -280px;
border: 1px solid rgba(245,170,60,.25);
border-radius: 50%;
}
.orbit::before,
.orbit::after {
content: "";
position: absolute;
border: 1px solid rgba(37,184,155,.17);
border-radius: 50%;
}
.orbit::before { inset: 78px; }
.orbit::after { inset: 156px; }
.header {
position: absolute;
left: 76px;
right: 76px;
top: 74px;
display: flex;
justify-content: space-between;
align-items: center;
}
.brand { font-size: 22px; font-weight: 720; letter-spacing: 3.6px; }
.dot { display: inline-block; width: 11px; height: 11px; margin-right: 13px; border-radius: 50%; background: #20c685; box-shadow: 0 0 20px rgba(32,198,133,.75); }
.status { color: rgba(247,244,237,.5); font-size: 19px; font-weight: 620; }
.headline {
position: absolute;
left: 73px;
top: 166px;
width: 900px;
margin: 0;
font-size: 74px;
line-height: 1.08;
letter-spacing: -4px;
font-weight: 740;
}
.headline em { font-style: normal; color: #f3a12e; }
.intro {
position: absolute;
left: 78px;
top: 352px;
margin: 0;
color: rgba(247,244,237,.61);
font-size: 28px;
line-height: 1.5;
font-weight: 520;
}
.stage {
position: absolute;
left: 58px;
top: 470px;
width: 964px;
height: 680px;
}
.rail {
position: absolute;
width: 850px;
height: auto;
filter: drop-shadow(0 26px 46px rgba(0,0,0,.38));
}
.rail.light { left: 0; top: 0; }
.rail.dark { right: 0; top: 302px; }
.label {
position: absolute;
display: flex;
align-items: center;
gap: 11px;
font-size: 20px;
font-weight: 680;
letter-spacing: 1px;
color: rgba(247,244,237,.72);
}
.label::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #f3a12e; }
.label.light { right: 14px; top: 228px; }
.label.dark { left: 12px; top: 528px; }
.label.dark::before { background: #1ab293; }
.rule {
position: absolute;
left: 77px;
right: 77px;
top: 1170px;
height: 1px;
background: linear-gradient(90deg, rgba(255,255,255,.04), rgba(255,255,255,.24), rgba(255,255,255,.04));
}
.footer {
position: absolute;
left: 77px;
right: 77px;
top: 1218px;
display: flex;
align-items: end;
justify-content: space-between;
}
.footer-main { font-size: 31px; line-height: 1.4; font-weight: 650; }
.footer-main span { color: #25c39e; }
.footer-side { text-align: right; color: rgba(247,244,237,.52); font-size: 20px; line-height: 1.65; font-weight: 560; }
</style>
</head>
<body>
<main class="poster">
<div class="orbit"></div>
<header class="header">
<div class="brand"><span class="dot"></span>CODEX HELPER</div>
<div class="status">macOS · v0.7.1</div>
</header>
<h1 class="headline">浅色,深色。<br><em>都安静地守着 Codex。</em></h1>
<p class="intro">额度变化时,颜色会轻轻提醒你。<br>需要时,自动重试接手未完成的任务。</p>
<section class="stage">
<img class="rail light" src="rail-light.png" alt="浅色悬浮轨道" />
<div class="label light">浅色模式</div>
<img class="rail dark" src="rail-dark.png" alt="深色悬浮轨道" />
<div class="label dark">深色模式</div>
</section>
<div class="rule"></div>
<footer class="footer">
<div class="footer-main">看见剩余,放心继续。<br><span>Codex Helper for Mac</span></div>
<div class="footer-side">菜单栏 · 悬浮轨道 · 小组件<br>免费开源 · MIT License</div>
</footer>
</main>
</body>
</html>
156 changes: 156 additions & 0 deletions assets/marketing-v0.7.1/source/poster-hero.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=1080, initial-scale=1" />
<style>
* { box-sizing: border-box; }
html, body { margin: 0; width: 1080px; height: 1440px; overflow: hidden; }
body {
font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "PingFang SC", sans-serif;
color: #17201f;
background: #f6f3eb;
}
.poster {
position: relative;
width: 1080px;
height: 1440px;
overflow: hidden;
background: linear-gradient(180deg, rgba(255,254,248,.96) 0%, rgba(248,247,240,.92) 48%, rgba(234,243,239,.88) 100%);
}
.art {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
opacity: .34;
filter: saturate(.78) contrast(.9);
}
.wash {
position: absolute;
inset: 0;
background:
radial-gradient(circle at 86% 24%, rgba(255,168,53,.15), transparent 26%),
linear-gradient(180deg, rgba(250,249,242,.42), rgba(250,249,242,.05) 50%, rgba(245,248,245,.3));
}
.topline {
position: absolute;
top: 70px;
left: 74px;
right: 74px;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 22px;
font-weight: 700;
letter-spacing: 4.2px;
}
.brand { display: flex; align-items: center; gap: 16px; }
.brand-mark {
width: 16px;
height: 16px;
border-radius: 50%;
background: #159e89;
box-shadow: 0 0 0 8px rgba(21,158,137,.10);
}
.platform { color: rgba(23,32,31,.52); font-size: 19px; letter-spacing: 2px; }
.headline {
position: absolute;
top: 160px;
left: 72px;
width: 900px;
font-size: 86px;
line-height: 1.06;
letter-spacing: -5px;
font-weight: 760;
}
.headline .accent { color: #d9770b; }
.subline {
position: absolute;
top: 368px;
left: 77px;
font-size: 30px;
font-weight: 560;
color: rgba(23,32,31,.66);
letter-spacing: .5px;
}
.rail-wrap {
position: absolute;
top: 462px;
left: 76px;
width: 928px;
height: 407px;
display: flex;
align-items: center;
justify-content: center;
filter: drop-shadow(0 30px 40px rgba(20,42,37,.16));
}
.rail { width: 910px; height: auto; display: block; }
.dash-frame {
position: absolute;
left: 108px;
top: 870px;
width: 864px;
height: 484px;
overflow: hidden;
border-radius: 35px 35px 0 0;
border: 1px solid rgba(27,45,41,.13);
box-shadow: 0 35px 80px rgba(15,48,42,.18);
background: #f5f7f6;
}
.dashboard {
width: 940px;
height: auto;
display: block;
margin-left: -38px;
margin-top: -14px;
}
.feature-strip {
position: absolute;
left: 80px;
bottom: 42px;
display: flex;
gap: 14px;
}
.feature {
padding: 13px 19px;
border: 1px solid rgba(20,35,33,.14);
border-radius: 999px;
background: rgba(255,255,250,.82);
color: #263331;
font-size: 20px;
font-weight: 650;
box-shadow: 0 8px 24px rgba(33,59,53,.08);
}
.version {
position: absolute;
right: 77px;
bottom: 57px;
font-size: 20px;
color: rgba(23,32,31,.56);
font-weight: 650;
}
</style>
</head>
<body>
<main class="poster">
<img class="art" src="abstract-orbits.png" alt="" />
<div class="wash"></div>
<header class="topline">
<div class="brand"><span class="brand-mark"></span><span>CODEX HELPER</span></div>
<span class="platform">FOR MAC</span>
</header>
<h1 class="headline">Codex 的状态<br><span class="accent">一眼就够。</span></h1>
<p class="subline">剩余额度 · 自动重试 · 更新动态</p>
<div class="rail-wrap"><img class="rail" src="rail-light.png" alt="Codex Helper 悬浮轨道" /></div>
<div class="dash-frame"><img class="dashboard" src="dashboard-light.png" alt="Codex Helper 主界面" /></div>
<div class="feature-strip">
<span class="feature">菜单栏</span>
<span class="feature">悬浮轨道</span>
<span class="feature">macOS 小组件</span>
</div>
<div class="version">开源 · 免费 · MIT</div>
</main>
</body>
</html>
Binary file added assets/marketing-v0.7.1/source/rail-dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/marketing-v0.7.1/source/rail-light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
52 changes: 52 additions & 0 deletions docs/marketing-v0.7.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Codex Helper v0.7.1 宣传文案

## 小红书标题

我给 Codex 做了一个 Mac 小助手:额度不用再点进去看

## 小红书正文

每天用 Codex,最容易打断节奏的两件事:

额度还剩多少?任务是不是因为模型满载停住了?

所以做了 **Codex Helper**,一个安静待在 macOS 上的开源小工具:

- 剩余额度和重置时间,一眼就能看见
- 菜单栏、悬浮轨道、macOS 原生小组件自由选择
- 遇到模型满载中断,可以自动回到对应任务继续
- 顺手查看 Codex 更新动态和官方文档

界面支持浅色与深色模式,免费开源,MIT License。

下载:<https://github.com/makerjackie/codex-helper/releases>

项目:<https://github.com/makerjackie/codex-helper>

注:Codex Helper 不是 OpenAI 官方产品。额度显示和小组件不需要辅助功能权限;只有自动重试代为提交续跑消息时需要授权。

#Codex #Mac软件 #效率工具 #开源软件 #AI编程

## 一句话版本

Codex Helper:在 Mac 上一眼查看 Codex 剩余额度,模型满载时自动把原任务接着跑下去。

## GitHub / Release 简介

Codex Helper 是一款开源 macOS Codex 辅助工具,提供剩余额度、重置时间、菜单栏状态、悬浮轨道、原生小组件和模型满载自动重试。支持中英文、自动更新与 Codex 官方动态入口。

## English short copy

Codex Helper is an open-source macOS companion that keeps your remaining Codex quota visible and safely continues the original task after a model-capacity interruption.

## 素材

- `assets/marketing-v0.7.1/codex-helper-poster-zh.webp`:主宣传图,1080 × 1440
- `assets/marketing-v0.7.1/codex-helper-ui-poster-zh.webp`:浅色 / 深色界面图,1080 × 1440
- `assets/marketing-v0.7.1/codex-helper-promo-zh.mp4`:竖屏短视频,1080 × 1920,15 秒,无配音,原创轻音乐

## 生成式底图提示词

> Use case: ads-marketing. Create an original premium abstract backdrop for a macOS productivity utility called Codex Helper. Portrait 3:4 composition, 1080×1440. Quiet editorial minimalism with a warm off-white paper-like base, luminous mint and soft amber light fields, a restrained deep-ink accent, subtle orbital arcs and fine trajectory lines that suggest monitoring and retrying. Generous negative space in the upper third and center for later typography and real product screenshots. Sophisticated, clean, airy, calm, distinctly original; no glassmorphism cards, no device mockup, no app interface, no human figures. Absolutely no text, no letters, no numbers, no logo, no watermark.

底图由图像生成工具生成;界面和文字使用真实产品截图二次排版,避免生成式 UI 与文字失真。
Loading