Skip to content

Commit b021409

Browse files
committed
Codex support
1 parent 58affe3 commit b021409

File tree

5 files changed

+79
-67
lines changed

5 files changed

+79
-67
lines changed

public/images/claude.png

53.6 KB
Loading

public/images/openai.png

45.2 KB
Loading

src/pages/LearnMore/LearnMore.tsx

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ const LearnMore: React.FC = () => {
4141
</div>
4242
<div className="prereq-card">
4343
<div className="prereq-icon">🔑</div>
44-
<h3>Anthropic API key or Claude Pro subscription</h3>
45-
<p>Powers Claude Code CLI</p>
44+
<h3>AI API Key</h3>
45+
<p>Anthropic API key (for Claude) or OpenAI API key (for Codex)</p>
4646
</div>
4747
<div className="prereq-card">
4848
<div className="prereq-icon">📁</div>
@@ -77,23 +77,28 @@ const LearnMore: React.FC = () => {
7777
<div className="step-card">
7878
<div className="step-number">1</div>
7979
<div className="step-content">
80-
<h3>Install Claude Code CLI</h3>
81-
<p>First, install the Claude Code CLI which powers the AI capabilities.</p>
82-
<div className="code-block">
83-
<code>Visit <a href="https://docs.anthropic.com/en/docs/claude-code/overview"
80+
<h3>Install AI CLI (Claude Code or Codex)</h3>
81+
<p>First, install either Claude Code CLI and/or Codex CLI which powers the AI capabilities.</p>
82+
<div className="step-tips">
83+
<div className="tip-item">
84+
<span className="tip-icon">🤖</span>
85+
<span><strong>For Claude:</strong> Visit <a href="https://docs.anthropic.com/en/docs/claude-code/overview"
8486
target="_blank" rel="noopener noreferrer" style={{
8587
color: 'var(--primary-color)',
8688
textDecoration: 'underline'
87-
}}>Claude Code Documentation</a> for installation instructions</code>
88-
</div>
89-
<div className="step-tips">
89+
}}>Claude Code Documentation</a> for installation instructions</span>
90+
</div>
9091
<div className="tip-item">
91-
<span className="tip-icon">💡</span>
92-
<span>Follow the setup guide for your operating system</span>
92+
<span className="tip-icon">🤖</span>
93+
<span><strong>For Codex:</strong> Visit <a href="https://platform.openai.com/docs"
94+
target="_blank" rel="noopener noreferrer" style={{
95+
color: 'var(--primary-color)',
96+
textDecoration: 'underline'
97+
}}>OpenAI Documentation</a> for setup instructions</span>
9398
</div>
9499
<div className="tip-item">
95-
<span className="tip-icon"></span>
96-
<span>Run the <code className="inline-code">claude</code> command for initial setup once installed</span>
100+
<span className="tip-icon">💡</span>
101+
<span>Follow the setup guide for your operating system and chosen AI model</span>
97102
</div>
98103
</div>
99104
</div>

src/pages/Terms/Terms.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,7 @@ const Terms: React.FC = () => {
5959
<li><strong>Remote AI Command Execution:</strong> Execute AI commands on your local machine
6060
from mobile or web interfaces
6161
</li>
62-
<li><strong>Multi-Platform AI Integration:</strong> Support for Claude (Anthropic), Gemini
63-
(Google), and Codex (OpenAI) AI models (with Gemini and Codex coming at a later date)
62+
<li><strong>Multi-Platform AI Integration:</strong> Support for Claude (Anthropic) and Codex (OpenAI) AI models, with Gemini (Google) coming at a later date
6463
</li>
6564
<li><strong>Cross-Device Synchronization:</strong> Access your AI runners from mobile apps,
6665
web browser, and command-line tools
@@ -166,8 +165,8 @@ const Terms: React.FC = () => {
166165
<ul style={{marginLeft: '1.5rem', marginTop: '0.5rem'}}>
167166
<li>All applicable local, state, federal, and international laws and regulations</li>
168167
<li>Anthropic's Claude API terms of service and usage policies</li>
168+
<li>OpenAI's Codex API terms of service and usage policies</li>
169169
<li>Google's terms of service for Firebase, OAuth, and related services</li>
170-
<li>OpenAI's usage policies (for Codex integration)</li>
171170
<li>Google's AI principles and usage policies (for Gemini integration)</li>
172171
</ul>
173172
<p style={{marginTop: '1rem'}}>You expressly agree NOT to use the Service to:</p>

src/pages/Welcome/Welcome.tsx

Lines changed: 59 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import React, { useEffect } from 'react';
1+
import React, {useEffect} from 'react';
22
import './Welcome.css';
33
import Footer from '../../components/Footer';
44
import Header from '../../components/Header';
5-
import { useAuth } from '../../contexts/AuthContext';
5+
import {useAuth} from '../../contexts/AuthContext';
66

77
const Welcome: React.FC = () => {
8-
const { loadUserState } = useAuth();
8+
const {loadUserState} = useAuth();
99

1010
useEffect(() => {
1111
// Load user state when Welcome page mounts
@@ -20,13 +20,14 @@ const Welcome: React.FC = () => {
2020
{/* Hero Section */}
2121
<section className="hero">
2222
<div className="hero-content">
23-
<div className="hero-badge">Powered by Anthropic Claude</div>
23+
<div className="hero-badge">Powered by Claude & Codex</div>
2424
<h1 className="hero-title">
25-
Your Terminal's AI Agent,<br/>Now In Your Pocket
25+
Your Terminal's AI Agent, Now In Your Pocket
2626
</h1>
2727
<p className="hero-description">
2828
Start AI coding tasks on your computer, from your phone.
29-
Get notified when they're done. All using your own machine and your own tools. Attributed to you.
29+
Get notified when they're done. All using your own machine and your own tools. Attributed to
30+
you.
3031
</p>
3132

3233
<div className="hero-actions">
@@ -93,14 +94,15 @@ const Welcome: React.FC = () => {
9394
<div className="problem-card">
9495
<div className="card-icon">😓</div>
9596
<h3>The Problem</h3>
96-
<p>Stuck waiting for AI tasks to complete? Need to step away but want to stay productive?
97-
Long-running builds, tests, and code reviews keeping you tethered to your desk?</p>
97+
<p>Stuck waiting for AI tasks to complete? Need to step away but want to stay
98+
productive?
99+
Long-running builds, tests, and code reviews keeping you tethered to your desk?</p>
98100
</div>
99101
<div className="solution-card">
100102
<div className="card-icon"></div>
101103
<h3>The Solution</h3>
102104
<p>Salamander lets you run AI tasks from your phone and get notified when
103-
they're done. Work from anywhere while your machine handles the heavy lifting.</p>
105+
they're done. Work from anywhere while your machine handles the heavy lifting.</p>
104106
</div>
105107
</div>
106108
</div>
@@ -129,7 +131,8 @@ const Welcome: React.FC = () => {
129131
<div className="use-case-card">
130132
<div className="use-case-icon">🏢</div>
131133
<h3>Long Builds</h3>
132-
<p>Deploy a build before signing off for the day. Know when it's done or if there are issues without having to stay at your keyboard.</p>
134+
<p>Deploy a build before signing off for the day. Know when it's done or if there are
135+
issues without having to stay at your keyboard.</p>
133136
</div>
134137
<div className="use-case-card">
135138
<div className="use-case-icon">💻</div>
@@ -189,7 +192,7 @@ const Welcome: React.FC = () => {
189192
<h4>Salamander</h4>
190193
<ul>
191194
<li className="positive">Full environment control</li>
192-
<li className="positive">Pay only for Claude API usage or Claude Pro</li>
195+
<li className="positive">Pay only for AI API usage (Claude or Codex)</li>
193196
<li className="positive">Your commits, your credit</li>
194197
<li className="positive">Use any tool you want</li>
195198
</ul>
@@ -232,38 +235,38 @@ const Welcome: React.FC = () => {
232235
<div className="comparison-table-wrapper">
233236
<table className="comparison-table">
234237
<thead>
235-
<tr>
236-
<th>Feature</th>
237-
<th className="highlight-col">Salamander</th>
238-
<th>Cloud AI IDEs</th>
239-
<th>GitHub Copilot</th>
240-
</tr>
238+
<tr>
239+
<th>Feature</th>
240+
<th className="highlight-col">Salamander</th>
241+
<th>Cloud AI IDEs</th>
242+
<th>GitHub Copilot</th>
243+
</tr>
241244
</thead>
242245
<tbody>
243-
<tr>
244-
<td>Use your own machine</td>
245-
<td className="highlight-col"><span className="check"></span></td>
246-
<td><span className="cross"></span></td>
247-
<td><span className="cross"></span></td>
248-
</tr>
249-
<tr>
250-
<td>Mobile control</td>
251-
<td className="highlight-col"><span className="check"></span></td>
252-
<td><span className="cross"></span></td>
253-
<td><span className="cross"></span></td>
254-
</tr>
255-
<tr>
256-
<td>Your tools & environment</td>
257-
<td className="highlight-col"><span className="check"></span></td>
258-
<td><span className="partial">Limited</span></td>
259-
<td><span className="partial">Limited</span></td>
260-
</tr>
261-
<tr>
262-
<td>Direct commit attribution</td>
263-
<td className="highlight-col"><span className="check"></span></td>
264-
<td><span className="cross">Bot commits</span></td>
265-
<td><span className="cross">Bot commits</span></td>
266-
</tr>
246+
<tr>
247+
<td>Use your own machine</td>
248+
<td className="highlight-col"><span className="check"></span></td>
249+
<td><span className="cross"></span></td>
250+
<td><span className="cross"></span></td>
251+
</tr>
252+
<tr>
253+
<td>Mobile control</td>
254+
<td className="highlight-col"><span className="check"></span></td>
255+
<td><span className="cross"></span></td>
256+
<td><span className="cross"></span></td>
257+
</tr>
258+
<tr>
259+
<td>Your tools & environment</td>
260+
<td className="highlight-col"><span className="check"></span></td>
261+
<td><span className="partial">Limited</span></td>
262+
<td><span className="partial">Limited</span></td>
263+
</tr>
264+
<tr>
265+
<td>Direct commit attribution</td>
266+
<td className="highlight-col"><span className="check"></span></td>
267+
<td><span className="cross">Bot commits</span></td>
268+
<td><span className="cross">Bot commits</span></td>
269+
</tr>
267270
</tbody>
268271
</table>
269272
</div>
@@ -278,33 +281,36 @@ const Welcome: React.FC = () => {
278281
<div className="faq-item">
279282
<h3>Is my code sent anywhere?</h3>
280283
<p>Your code stays on your machine. Only the prompts and responses are transmitted
281-
through our secure servers to enable mobile communication. The actual AI processing
282-
happens locally via Claude Code CLI.</p>
284+
through our secure servers to enable mobile communication. The actual AI processing
285+
happens locally via the agent CLI you choose.</p>
283286
</div>
284287
<div className="faq-item">
285288
<h3>How secure is the connection?</h3>
286289
<p>All communications are encrypted end-to-end. We use industry-standard security
287-
protocols and trusted authentication providers to ensure your data is protected.</p>
290+
protocols and trusted authentication providers to ensure your data is protected.</p>
288291
</div>
289292
<div className="faq-item">
290293
<h3>What data do you collect?</h3>
291294
<p>We collect minimal data: your account information, runner status, and message
292-
metadata for notifications. We never store your code or access your files.</p>
295+
metadata for notifications. We never store your code or access your files.</p>
293296
</div>
294297
<div className="faq-item">
295298
<h3>Do I need to keep my computer on?</h3>
296299
<p>Yes, your computer needs to be awake and running for the AI to execute tasks.
297-
We recommend using tools like Caffeine (macOS) or Insomnia (Windows) to prevent sleep.</p>
300+
We recommend using tools like Caffeine (macOS) or Insomnia (Windows) to prevent
301+
sleep.</p>
298302
</div>
299303
<div className="faq-item">
300304
<h3>What do I need to get started?</h3>
301-
<p>You'll need Node.js 18+, Claude Code CLI installed, a Claude API key or Pro subscription,
302-
and (we recommend) a git-enabled project directory. Setup takes about 10 minutes.</p>
305+
<p>You'll need Node.js 18+, either Claude Code CLI or Codex CLI installed, an
306+
API key (Claude or OpenAI),
307+
and (we recommend) a git-enabled project directory. Setup takes about 10
308+
minutes.</p>
303309
</div>
304310
<div className="faq-item">
305311
<h3>Can I run multiple projects?</h3>
306312
<p>Yes! You can set up multiple runners for different projects and manage them
307-
all from the mobile app. Our Pro plan supports 25 concurrent runners.</p>
313+
all from the mobile app. Our Pro plan supports 25 concurrent runners.</p>
308314
</div>
309315
</div>
310316
</div>
@@ -314,7 +320,8 @@ const Welcome: React.FC = () => {
314320
<section className="cta">
315321
<div className="cta-content">
316322
<h2>Ready to work smarter, from anywhere?</h2>
317-
<p>Download Salamander and start your AI-powered productivity journey today. Setup takes 10 minutes.</p>
323+
<p>Download Salamander and start your AI-powered productivity journey today. Setup takes 10
324+
minutes.</p>
318325
<div className="cta-stats">
319326
<div className="stat-item">
320327
<div className="stat-number">10 min</div>
@@ -335,7 +342,8 @@ const Welcome: React.FC = () => {
335342
<img src="images/play_store.png" alt="Get it on Google Play"
336343
className="app-store-badge"/>
337344
</a>
338-
<a href="https://apps.apple.com/app/salamander-ai/id6752116173" className="app-store-link" target="_blank"
345+
<a href="https://apps.apple.com/app/salamander-ai/id6752116173" className="app-store-link"
346+
target="_blank"
339347
rel="noopener noreferrer">
340348
<img src="images/app_store.svg" alt="Download on the App Store"
341349
className="app-store-badge"/>

0 commit comments

Comments
 (0)