Show HN: OpenAI Codex for Free with GitHub Models

4 hours ago 2

Drop-in Codex AI agent with GitHub Models

This is a drop-in, zero-config Actions harness for OpenAI's Codex agent. It uses GitHub Models for inference, so you don't need to set up any secrets - just copy-pasting the action into your repo should work as-is.

You may need to go into your settings and check the "allow Actions to open PRs" checkbox.

To use it, open an issue in your repo with [codex] in the issue name.

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

name: Codex on GitHub Models
on:
issues:
types: [opened]
jobs:
process-issue:
if: contains(github.event.issue.title, '[codex]')
runs-on: ubuntu-latest
permissions:
contents: write
issues: write
pull-requests: write
models: read
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '22'
- name: Install Codex CLI
run: npm install -g @openai/codex
- name: Process issue with Codex
env:
OPENAI_API_KEY: ${{ secrets.GITHUB_TOKEN }}
ISSUE_BODY: ${{ github.event.issue.body }}
ISSUE_NUMBER: ${{ github.event.issue.number }}
ISSUE_TITLE: ${{ github.event.issue.title }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
INSTRUCTION="$ISSUE_TITLE --- $ISSUE_BODY"
BRANCH_NAME="codex/issue-$ISSUE_NUMBER"
git checkout -b $BRANCH_NAME
export OPENAI_BASE_URL=https://models.github.ai/inference
# any provider string would work here, it's just so codex knows it's using a custom model
codex --approval-mode full-auto --provider github --model openai/gpt-4.1 --quiet "$INSTRUCTION"
if [[ -n $(git status --porcelain) ]]; then
git config user.name "GitHub Models Codex Bot"
git config user.email "[email protected]"
git add .
git commit -m "Codex changes for issue #$ISSUE_NUMBER"
git push origin $BRANCH_NAME
# Create PR and comment on issue using the same token
gh pr create --title "Codex: ${{ github.event.issue.title }}" \
--body "Auto-generated by Codex for issue #$ISSUE_NUMBER" \
--base ${{ github.event.repository.default_branch }} \
--head $BRANCH_NAME
gh issue comment $ISSUE_NUMBER --body "Codex created a PR for this issue"
else
gh issue comment $ISSUE_NUMBER --body "Codex processed this issue but made no changes"
fi
Read Entire Article