Projects and chats
Organise conversations by project and pick up where you left off.
Coming soon to macOS · Apple Silicon and Intel
Claude Code, Codex and API models in one Mac app. See which chats are waiting for you, review the diff before moving on, and choose which account to work with. History and projects stay on your Mac.
We’ll only use your address for that. Privacy
No Cresci server in between: requests go from your Mac to the provider you choose. Cresci Code is an independent product, not affiliated with or endorsed by Anthropic, OpenAI, Google, xAI, DeepSeek or Mistral AI. Product names belong to their owners.
Fix flaky invoice test
Fix the flaky invoice test. Ask me before you change anything outside the tests.
Worked for 6m 50s
range.tsformatRange treated the end date as inclusive. The fix is ready and waits for your approval.
export function formatRange(a: Date, b: Date) { return `${fmt(a)} – ${fmt(addDays(b, -1))}`; }
Edit
Allow Cresci Code to edit this file?
edit_file · src/lib/range.ts
Move the sync tokens to the new keychain format and keep existing installs working.
Worked for 3m 12s
Tokens are now saved in the new format. The old one is still read on first launch and converted, so existing installs keep syncing.
The sync tests pass. Review the changes before you continue.
Split the range parser into smaller functions without changing its behaviour.
Working
I am checking the current behaviour with the existing tests before moving any code.
Terminal zsh · atlas-api
% npm test -- invoice > vitest run invoice src/lib/invoice.test.ts (5 tests) Test Files 1 passed (1) Tests 5 passed (5) %
src/lib/invoice.test.ts+22−2
8 describe('invoice ranges', () => {− const today = new Date();9+ const today = fixedClock('2026-03-31');10 11+ it('ends the day before the next period', () => {12+ const range = monthOf(today);13+ expect(formatRange(range.start, range.end))14+ .toBe('Mar 1 – Mar 31');15+ });16+17+ it('handles a month boundary at midnight', () => {18+ const end = new Date('2026-04-01T00:00:00Z');19+ expect(formatRange(today, end))20+ .toBe('Mar 31 – Mar 31');21+ });22 });
src/lib/fixtures/clock.ts+6−2
src/sync/tokens.ts+24−9
14 export async function loadToken(account) {− return keychain.read(`sync:${account}`);15+ const next = await keychain.read(`sync.v2:${account}`);16+ if (next) return next;17+ const legacy = await keychain.read(`sync:${account}`);18+ if (!legacy) return null;19+ await saveToken(account, upgrade(legacy));20+ return upgrade(legacy);21 }
src/sync/keychain.ts+9−3
src/sync/tokens.test.ts+8
No changes in this chat
Cresci Code runs the official Claude Code and Codex CLI installed on your Mac, and you sign in to them with your own account. API models use your own API keys. Usage counts against your own plan or API key; provider terms and limits apply and can change.
Conversations, files and tools stay tied to the project you are working on.
Organise conversations by project and pick up where you left off.
Read the diff file by file before moving on. Tasks that change code can use a separate workspace.
Run tests and commands in the same project, next to the conversation.
History, projects and settings are saved on the computer that runs Cresci Code. When you send a request to a model, it reaches the provider you connected and follows its terms.
Your Mac
Requests to models
Connected provider
Your account or your API key, under the provider’s terms.
macOS 13 or later · Apple Silicon and Intel · Runtime included · Version ·
Compare this SHA-256 with the checksum of the file you downloaded.
The app is published under Apple Developer Team ID . After installing it, check the Team ID in Terminal:
codesign -dv --verbose=2 "/Applications/Cresci Code.app" 2>&1 | grep TeamIdentifier
It must print TeamIdentifier=. Then check the notarization; it must say “source=Notarized Developer ID”:
spctl -a -vv "/Applications/Cresci Code.app"
It is a workspace for using AI models on projects and tasks. It brings together chat, a terminal and the review of changes in one Mac app, and it runs on your own Mac.
You can use the official Claude Code and Codex clients installed on your Mac, with your own accounts, or connect API keys from Anthropic, OpenAI, Google, xAI, DeepSeek and Mistral. The accounts, models and features available depend on your configuration and on your access to the provider.
No. You connect your own accounts or API keys. Any subscriptions, usage and limits of the models remain managed by the respective providers, under their terms, which can change.
History and settings are saved on the Mac that runs Cresci Code. Requests sent to an external model reach the selected provider and follow its terms. Working locally does not make AI requests offline.
No, the packaged macOS app includes the runtime it needs. It is planned for macOS 13 or later on Apple Silicon and Intel. External clients and the development tools your project requires are set up separately.
Not yet. Today Cresci Code runs on your Mac and you use it there. Access from a phone is planned and is not part of the first release. There is no hosted or server version.