Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
4a0cba4
Refine public beta iOS docs
codepilotios Jul 17, 2026
49f8690
docs: align beta connection copy
codepilotios Jul 17, 2026
b42cd89
Add beta privacy policy
codepilotios Jul 17, 2026
b67ed53
docs: tighten public beta support copy
codepilotios Jul 17, 2026
565fb41
docs: add beta feedback guide
codepilotios Jul 17, 2026
2602b1f
docs: remove private OTA host references
codepilotios Jul 17, 2026
486fc9d
docs: add public-safe beta contribution templates
codepilotios Jul 17, 2026
ec4a950
docs: align public beta presence copy
codepilotios Jul 17, 2026
024c438
docs: tighten public beta reporting guidance
codepilotios Jul 17, 2026
acddad9
docs: align beta support categories
codepilotios Jul 17, 2026
87c5fd7
docs: prepare GitHub Pages beta site
codepilotios Jul 17, 2026
a726113
docs: remove private legacy bundle namespace
codepilotios Jul 17, 2026
0289bbb
fix: use public APNs bundle topic
codepilotios Jul 17, 2026
7edc71a
docs: clarify public beta reporting readiness
codepilotios Jul 17, 2026
32bedf9
docs: clarify tunnel privacy boundary
codepilotios Jul 17, 2026
e3663cc
docs: align beta support with current workflows
codepilotios Jul 17, 2026
d82c53d
docs: gate remote desktop from public beta
codepilotios Jul 17, 2026
be2a0e4
docs: align beta App Store metadata
codepilotios Jul 17, 2026
0d091d9
docs: clarify public beta access and feedback
codepilotios Jul 17, 2026
4cfd081
docs: complete beta setup prerequisites
codepilotios Jul 17, 2026
bc69a11
docs: clarify remote desktop beta reporting
codepilotios Jul 17, 2026
5b66d94
docs: disclose beta data handling details
codepilotios Jul 17, 2026
67fed70
docs: clarify beta external data flows
codepilotios Jul 17, 2026
20c49a3
docs: harden beta screenshot capture brief
codepilotios Jul 17, 2026
4518733
docs: map public beta data flow
codepilotios Jul 17, 2026
d2d3caa
docs: document account reset credits
codepilotios Jul 17, 2026
5b70509
docs: clarify beta operating expectations
codepilotios Jul 17, 2026
879501e
docs: clarify optional notification delivery
codepilotios Jul 18, 2026
4d7c412
docs: track public repository settings
codepilotios Jul 18, 2026
1b681f5
docs: keep public beta provider claims scoped
codepilotios Jul 18, 2026
e92754b
docs: align repository beta summary
codepilotios Jul 18, 2026
3e16d69
docs: add beta upload and notification recovery
codepilotios Jul 18, 2026
e49f189
docs: flag public terms approval gap
codepilotios Jul 18, 2026
00a41b1
docs: align public metadata URLs
codepilotios Jul 18, 2026
af7ceec
docs: add safe beta update guidance
codepilotios Jul 18, 2026
1cfafe8
docs: disclose localhost preview data flow
codepilotios Jul 18, 2026
610aaaa
docs: avoid future provider promise
codepilotios Jul 18, 2026
e85125d
docs: explain beta data deletion
codepilotios Jul 18, 2026
f39e85c
ci: audit public presence metadata
codepilotios Jul 18, 2026
7b69c2e
docs: align Pages beta description
codepilotios Jul 18, 2026
5ecae33
ops: audit live public presence
codepilotios Jul 18, 2026
8e4b530
ci: guard App Store metadata field limits
codepilotios Jul 18, 2026
394ac24
ops: reverify public presence blockers
codepilotios Jul 18, 2026
55fb5e6
ops: correct presence escalation count
codepilotios Jul 18, 2026
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
71 changes: 71 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
---
name: Bug report
about: Report a CodePilot public beta problem without sharing private data
title: "[Bug]: "
labels: bug, beta
assignees: ""
---

## Area

- [ ] Mac app
- [ ] iPhone app
- [ ] Gateway
- [ ] Cloudflare setup
- [ ] Account switching
- [ ] Usage status
- [ ] Connector/plugin status
- [ ] Remote Desktop availability guard (feature appeared or could be enabled)
- [ ] File upload
- [ ] Localhost link opening
- [ ] Notifications
- [ ] Documentation

## What happened?

Describe the problem and what you expected instead.

## Failing step

Check the closest match:

- [ ] First-run setup
- [ ] Cloudflare Tunnel setup
- [ ] Gateway start or restart
- [ ] Gateway URL entry
- [ ] Token entry
- [ ] Thread loading
- [ ] Usage or connector status
- [ ] File upload
- [ ] Localhost link opening
- [ ] Steering or stop-turn control
- [ ] Notification delivery
- [ ] Remote Desktop appeared or could be enabled
- [ ] Documentation

## Steps to reproduce

1.
2.
3.

## Visible recovery message

Paste the visible recovery message or status text, with private values removed.

## Setup

- macOS version:
- iOS version:
- CodePilot build or commit:
- Codex CLI version (if available):
- Codex CLI already working on this Mac: yes/no
- Connection path: Cloudflare Tunnel / other

## Sanitized logs or screenshots

Attach only sanitized logs or screenshots when they materially help reproduce the issue.

Do not include Codex auth files, gateway bearer tokens, private hostnames, tunnel URLs, localhost or local-web session URLs, local page contents, personal account names, email addresses, Apple identifiers, local file paths, private prompts, uploaded files, repository names, or live desktop contents.

Remote Desktop is outside the supported public beta. Report only if it appears or can be enabled; do not test its routes or attach desktop captures.
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Security or privacy-sensitive report
url: https://github.com/codepilotios/codepilot/blob/main/docs/SECURITY.md
about: Do not post secrets, tokens, unsafe gateway access details, remote desktop bypass details, or private files publicly. Use the security guidance first.
39 changes: 39 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
name: Feature request
about: Suggest a CodePilot public beta improvement without sharing private data
title: "[Feature]: "
labels: enhancement, beta
assignees: ""
---

## Workflow

What AI coding workflow would this improve?

Who is affected?

- [ ] Existing Codex CLI users
- [ ] Public beta testers setting up CodePilot for the first time
- [ ] Users monitoring or steering sessions from iPhone
- [ ] Users managing multiple Codex account profiles
- [ ] Documentation or support readers

## Proposed Improvement

Describe the behavior you want CodePilot to support.

## Current Workaround

Describe what you do today, if anything.

## Setup Context

- Mac app, iPhone app, gateway, Cloudflare setup, account switching, notifications, file upload, or docs:
- Codex CLI already working on the Mac: yes/no/not sure
- Connection path: Cloudflare Tunnel / other / not applicable

## Beta Safety

Keep requests beta-focused. Do not add pricing, subscription, App Store availability, production-team readiness, hosted account, LAN setup, or non-Codex provider claims unless maintainer approval already exists.

Do not include Codex auth files, gateway bearer tokens, private hostnames, tunnel URLs, personal account names, email addresses, Apple identifiers, local file paths, private prompts, uploaded files, repository names, or live desktop contents.
15 changes: 15 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
## Summary

Describe the public beta change and the user-facing workflow it affects.

## Verification

- [ ] Documentation-only change, or tests/builds run:
- [ ] Public copy remains beta-focused and targets AI coding users or existing Codex CLI users.
- [ ] No pricing, subscription, legal, App Store submission, or privacy-label claim was added without maintainer approval.

## Privacy Audit

- [ ] No private names, email addresses, hostnames, local usernames, machine-specific paths, tokens, or private screenshots are included.
- [ ] Screenshots, logs, and examples use demo data only.
- [ ] Support/debugging copy tells users to remove credentials, gateway URLs, account names, local paths, private prompts, and live desktop contents before sharing.
3 changes: 3 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ jobs:
- name: Privacy audit
run: scripts/privacy-audit.sh

- name: Public presence audit
run: scripts/public-presence-audit.sh

- name: SwiftPM tests
run: swift test

Expand Down
55 changes: 39 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# CodePilot
# CodePilot Public Beta

CodePilot is a Mac menu bar app and iPhone companion for running coding-agent sessions from a Mac you control. It currently focuses on Codex account switching, usage visibility, remote iPhone access, file uploads, connector status, notifications, and gateway-backed conversation control.
CodePilot is a Mac menu bar app, local gateway, and iPhone companion for AI coding users who already run Codex CLI on a Mac they control.

The project is designed to become provider-neutral over time, including future Claude Code compatibility.
The public beta focuses on Codex account switching, usage visibility, remote iPhone access through a user-owned Cloudflare Tunnel, file uploads, connector status, optional notifications, and gateway-backed conversation control. The current beta is Codex-focused; support for other coding agents is not part of the beta promise.

## License

Expand All @@ -15,7 +15,7 @@ Commercial use requires a separate written license. See [LICENSE.md](LICENSE.md)
- **CodePilot Mac**: a macOS menu bar app that tracks usage, manages account profiles, and coordinates automatic account switching.
- **CodePilot Gateway**: a local Python gateway that exposes threads, jobs, files, usage, notifications, and account controls to trusted clients.
- **CodePilot iOS**: an iPhone app that connects to the gateway for remote chat, file uploads, usage status, steering, stopping turns, and notifications.
- **Cloudflare Tunnel support**: optional remote access to the gateway through a user-owned Cloudflare Tunnel.
- **Cloudflare Tunnel support**: public-beta iPhone access to the gateway through a user-owned Cloudflare Tunnel.

## Current Provider Support

Expand All @@ -30,57 +30,80 @@ The public product name is provider-neutral, but the first implementation remain

## Quick Start

The Mac app currently builds from source on macOS 13 or later. The iPhone companion requires iOS 17 or later and access to an approved beta build; this repository does not yet promise a public TestFlight invitation or App Store download.

1. Install Codex on the Mac that will run CodePilot.
2. Build the Mac app:
2. Clone this repository:

```sh
git clone https://github.com/codepilotios/codepilot.git
cd codepilot
```

3. Build the Mac app:

```sh
scripts/build-app.sh
open "build/CodePilot.app"
```

3. Use the menu bar app to add account profiles.
4. Install and start the gateway from the app setup screen or the helper script:
4. Use the menu bar app to add account profiles.
5. Install and start the gateway from the app setup screen or the helper script:

```sh
scripts/install-phone-gateway-agent.sh
```

5. Optional: configure Cloudflare Tunnel for remote iPhone access.
6. Install the iOS app and enter the gateway URL plus bearer token.
6. Configure Cloudflare Tunnel for public-beta iPhone access.
7. If you have an approved iPhone beta build, install it and enter the gateway URL plus bearer token.

Keep the Mac awake and online, with the CodePilot gateway and Cloudflare Tunnel running, while using the iPhone companion. The current beta has no hosted relay that can reach an offline Mac.

See:

- [Mac Installation](docs/INSTALL_MAC.md)
- [iOS Installation](docs/INSTALL_IOS.md)
- [Cloudflare Setup](docs/CLOUDFLARE_SETUP.md)
- [FAQ](docs/FAQ.md)
- [Privacy](docs/PRIVACY.md)
- [Beta Feedback Guide](docs/BETA_FEEDBACK.md)
- [Privacy, beta data flow, and deletion](docs/PRIVACY.md#beta-data-flow-at-a-glance)
- [Support](docs/SUPPORT.md)
- [Changelog](docs/CHANGELOG.md)
- [App Store Metadata Draft](docs/APP_STORE_METADATA_DRAFT.md)
- [Screenshot Plan](metadata/screenshots/README.md)
- [Screenshot Plan](docs/SCREENSHOTS.md)
- [Public Presence Checklist](docs/PUBLIC_PRESENCE_CHECKLIST.md)
- [Security](docs/SECURITY.md)
- [Architecture](docs/ARCHITECTURE.md)
- [Troubleshooting](docs/TROUBLESHOOTING.md)
- [Release Checklist](docs/RELEASE_CHECKLIST.md)

## Beta Feedback

- [Report a beta bug](https://github.com/codepilotios/codepilot/issues/new?template=bug_report.md)
- [Request a beta improvement](https://github.com/codepilotios/codepilot/issues/new?template=feature_request.md)

Remove gateway URLs, tokens, hostnames, localhost or local-web session URLs, local page contents, account names, local paths, private prompts, uploaded files, and unsanitized screenshots before submitting. For security-sensitive findings, read the [security reporting guidance](docs/SECURITY.md) first and do not post sensitive evidence publicly.

## Features

- Manual account profile capture and switching.
- Automatic switching only after active turns are finished.
- 5-hour and weekly usage status across accounts.
- 5-hour and weekly usage status, reset timing, and available reset credits per account.
- Global iOS credit progress indicator.
- iOS remote chat and file upload.
- Conversation steering and stop-turn controls where supported.
- In-app opening of `localhost`, `127.0.0.1`, and `::1` web links through the authenticated Mac gateway.
- Thread pinning, renaming, deletion, and project grouping.
- Connector/plugin status visibility.
- Turn-finished notifications.
- Turn-finished notifications when APNs is configured for the gateway.
- Gateway-backed auth refresh flows.

## Screenshots

Screenshots will be added before the first public release.
No public screenshots are committed yet. The beta screenshot checklist is tracked in [docs/SCREENSHOTS.md](docs/SCREENSHOTS.md) so public images use demo data and avoid tokens, hostnames, local paths, private prompts, account names, or live desktop content.

## Public Beta Status

## Public Release Status
CodePilot is being prepared for broader publishing through beta-first docs, sanitized screenshots, and maintainer-reviewed App Store metadata. Expect some internal names, bundle identifiers, LaunchAgent labels, and local state paths to still contain legacy Codex-specific names during the first migration phase.

CodePilot is being prepared for broader publishing. Expect some internal names, bundle identifiers, LaunchAgent labels, and local state paths to still contain legacy Codex-specific names during the first migration phase.
Remote Desktop is not part of the supported public beta while its device-pairing and session-authorization enforcement is being completed and independently verified. Do not enable or promote it in beta builds yet.
2 changes: 1 addition & 1 deletion Sources/CodexAccountSwitcher/main.swift
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ enum CodePilotHostServicesManager {
let env = [
"CODEX_PHONE_APNS_CERT_PATH": appDir.appendingPathComponent("apns/codexphone-apns-cert.pem").path,
"CODEX_PHONE_APNS_CERT_KEY_PATH": appDir.appendingPathComponent("apns/codexphone-apns-private.key").path,
"CODEX_PHONE_APNS_TOPIC": "com.tony.codexphone"
"CODEX_PHONE_APNS_TOPIC": "io.codepilot.iOS"
]
try writeLaunchAgent(
label: "io.codepilot.phone-gateway",
Expand Down
26 changes: 17 additions & 9 deletions docs/APP_STORE_METADATA_DRAFT.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,41 +6,49 @@ This draft is for TestFlight and App Store Connect preparation only. Do not subm

CodePilot

Character count: 9 of 30.

## Subtitle

Codex companion for your Mac

Character count: 28 of 30.

## Promotional Text

Public beta for Codex CLI users who want iPhone visibility, file uploads, turn control, notifications, and safe gateway-backed access to coding-agent sessions running on their own Mac.
Public beta for Codex CLI users: check usage and threads, upload files, and steer coding sessions running on a Mac you control.

Character count: 127 of 170.

## Description

CodePilot is a Mac menu bar app, local gateway, and iPhone companion for AI coding users who already run Codex CLI on a Mac.

Use the iPhone app to check active account status, follow threads, upload files, steer or stop supported turns, receive turn-finished notifications, and connect through your own Cloudflare Tunnel setup. The Mac stays in your control, and the current beta does not require a hosted CodePilot account service.
Use the iPhone app to check active account status, follow threads, upload files, open loopback web previews, steer or stop supported turns, receive optional turn-finished notifications, and connect through your own Cloudflare Tunnel setup. The Mac stays in your control, and the current beta does not require a hosted CodePilot account service.

The beta is focused on setup clarity, connection reliability, privacy-safe diagnostics, and practical remote workflows for existing Codex CLI users. Some internals still use Codex-specific names while the public CodePilot product surface is prepared for broader provider support later.
The beta is focused on setup clarity, connection reliability, privacy-safe diagnostics, and practical remote workflows for existing Codex CLI users. Some internals still use legacy Codex-specific names, and support for other coding agents is not part of the current beta.

CodePilot handles local coding-agent credentials and gateway access. Review the privacy, security, install, and support docs before exposing the gateway outside your local network.
CodePilot handles local coding-agent credentials and gateway access. Coding prompts and selected attachments are still processed through Codex and OpenAI according to the user's Codex account and configuration. Review the privacy, security, install, and support docs before exposing the gateway outside your local network.

## Keywords

Codex, coding agent, developer tools, Mac, iPhone, remote coding, AI coding, TestFlight, gateway, Cloudflare
Codex,coding agent,developer tools,Mac,iPhone,remote coding,AI coding,gateway,Cloudflare

Character count: 88 of 100.

## What To Test

Install CodePilot on a Mac that already runs Codex CLI, create a saved account profile, start the gateway, connect the iPhone app with the gateway URL and token, and verify thread visibility, file upload, turn control, notifications, and setup recovery messages.
Install CodePilot on a Mac that already runs Codex CLI, create a saved account profile, start the gateway, connect the iPhone app with the gateway URL and token, and verify thread visibility, file upload, turn control, and setup recovery messages. Open a purpose-built demo page from a loopback link and confirm it appears in the in-app browser without exposing development data. If APNs is configured for the gateway, also verify turn-finished notifications.

Please include the connection and recovery flow you tested. Remove account names, gateway URLs, tokens, hostnames, local paths, private prompts, screenshots, and logs containing private data before sharing feedback.
Please report whether Cloudflare Tunnel setup, gateway connection, token entry, or localhost link opening was the step that failed. Remove account names, gateway URLs, tokens, hostnames, localhost or local-web session URLs, local page contents, local paths, private prompts, screenshots, and logs containing private data before sharing feedback.

## Support URL

Use the public repository support documentation and issue tracker once the repository is public.
Requires maintainer approval before TestFlight external testing or App Store submission. Candidate destination after GitHub Pages is enabled and verified: `https://codepilotios.github.io/codepilot/SUPPORT.html`.

## Privacy URL

Use `docs/PRIVACY.md` until a public website URL is approved.
Requires maintainer approval before TestFlight external testing or App Store submission. Candidate destination after GitHub Pages is enabled and verified: `https://codepilotios.github.io/codepilot/PRIVACY.html`, generated from [Privacy](PRIVACY.md).

## Screenshot Requirements

Expand Down
38 changes: 38 additions & 0 deletions docs/BETA_FEEDBACK.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Beta Feedback Guide

CodePilot public beta feedback is most useful when it helps reproduce a real Codex CLI workflow without exposing private data.

## Best Reports

Include:

- The area affected: Mac app, iPhone app, gateway, Cloudflare setup, account switching, usage status, connector/plugin status, file upload, localhost link opening, notifications, docs, or the Remote Desktop availability guard.
- What you were trying to do.
- What happened instead.
- The visible recovery message or status text.
- Whether the failing step was setup, Cloudflare Tunnel, gateway connection, token entry, thread loading, usage or connector status, upload, localhost link opening, notification delivery, turn control, or an unavailable feature appearing unexpectedly.
- macOS version, iOS version, CodePilot build or commit, and Codex CLI version when available.
- Sanitized logs or screenshots only when they make the issue clearer.

## Useful Workflow Notes

For AI coding users and existing Codex CLI users, please call out:

- Whether Codex CLI itself was already working on the Mac before CodePilot setup.
- Whether active turns were running when account switching, gateway restart, steering, or stop-turn actions were attempted.
- Whether the issue happened on the Mac, through the iPhone app, or only through Cloudflare Tunnel.
- Whether refreshing Codex login, restarting the gateway when idle, or retesting the connection changed the result.

## Do Not Share

Remove these before opening an issue or attaching screenshots:

- Codex auth files, gateway bearer tokens, and Cloudflare tunnel URLs.
- Private hostnames, account names, personal names, email addresses, Apple identifiers, and team identifiers.
- Local file paths, private repository names, uploaded files, private prompts, thread names, and live desktop contents.
- Localhost or local-web session URLs, local page contents, and local web screenshots.
- Logs containing any of the above.

For security-sensitive reports, follow [Security](SECURITY.md) and avoid posting exploit details or secrets publicly.

Remote Desktop is outside the supported public beta. Report only if it appears or can be enabled; do not test its routes or share desktop captures.
Loading