Oura Profile Cards is a GitHub Action that generates SVG cards (e.g., a weekly readiness chart) using data collected by the Oura Ring. These cards allow you to showcase your health metrics and insights on your GitHub profile.
Note
You must have an Oura Ring and a valid API token to use this action. Learn more about the Oura API here.
These cards display your Oura Ring metrics over the past 7 days with threshold indicators for optimal, good, and fair levels:
- Create a workflow file in your repository (e.g.,
.github/workflows/oura-profile-cards.yml) with the following content:
name: Oura Profile Cards
on:
schedule:
- cron: '0 */3 * * *' # Run every 3 hours (adjust as needed)
workflow_dispatch: # Allow manual triggering
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: savvan0h/oura-profile-cards@v0.1.0
with:
OURA_API_TOKEN: ${{ secrets.OURA_API_TOKEN }}- Add your Oura API token as a repository secret:
- Go to your repository's [Settings] > [Secrets and variables] > [Actions]
- Create a new secret named
OURA_API_TOKENwith your personal access token
The action automatically:
- Fetches your latest Oura Ring data
- Generates SVG charts in the
oura-profile-card-outputdirectory - Commits and pushes these files to your repository
To display cards in your GitHub profile README, use the following Markdown syntax:

For a live example, see @savvan0h's profile.
- Node.js (version 20 or higher)
-
Clone the repository:
git clone https://github.com/savvan0h/oura-profile-cards.git cd oura-profile-cards -
Install dependencies:
npm install
-
Set your Oura API token:
export INPUT_OURA_API_TOKEN=your_oura_api_token_here -
Run the action locally:
npm run start
Note that running locally will not commit changes to your repository.
If your cards aren't generating:
- Check that your workflow is running properly in the Actions tab
- Verify your Oura API token is correct
- Make sure your Oura Ring is synced and providing data
This project is MIT licensed. Feel free to use, modify, and distribute it.
