File size: 3,943 Bytes
d665fdc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
---
title: PSYCHE web
emoji: 🧠
colorFrom: blue
colorTo: indigo
sdk: docker
pinned: false
---

# PSYCHE web (Hugging Face Space)

Barebones **Flask** app: **Home**, **Analysis** (DuckDB + preset queries over demo CSV), **Replay** (placeholder).

This Space uses **Flask + gunicorn**, not the FastAPI starter Hugging Face shows in the empty-Space wizard. That is intentional.

**Live Space:** [https://huggingface.co/spaces/ystrittm/psyche](https://huggingface.co/spaces/ystrittm/psyche)

## Run locally

From this directory:

```bash
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
export FLASK_APP=app.py
flask run --host 0.0.0.0 --port 7860
```

Open `http://127.0.0.1:7860/`.

---

## Deploy without a second repo (work only in PSYCHE)

Hugging Face’s onboarding often shows:

```bash
git clone https://huggingface.co/spaces/ystrittm/psyche
# password = HF access token (write) from https://huggingface.co/settings/tokens
```

That clones the **Space’s own Git repository** on Hugging Face (not GitHub). It is **valid**: you edit there, then `git push` with the same token. Many people work that way.

For PSYCHE we also support **not** maintaining that second clone: keep **one** checkout of [PSYCHE on GitHub](https://github.com/younesStrittmatter/PSYCHE), edit `space/` here, and deploy with the options below (they push the `space/` subtree to the same HF URL).

### Hugging Face does not “connect” a GitHub repo in Space settings

There is **no** reliable toggle like “use this GitHub repo as the source” in the Space UI. **Rename or transfer** only changes **owner or name** (and the Space URL / git remote); it does **not** sync GitHub.

To deploy the `space/` folder from PSYCHE, use one of the options below.

### Option A — Push from your machine (simplest)

From the **PSYCHE** repo root, **`space/` must be committed** (the push script uses `git subtree split`, which only sees tracked files):

```bash
git add space
git commit -m "Add Hugging Face Space app"
```

Then:

```bash
export HF_TOKEN=hf_...   # write token: https://huggingface.co/settings/tokens
./scripts/push_hf_space.sh
```

**Using a `.env` file:** copy [`.env.example`](../.env.example) to **`.env`** in the repo root (`.env` is gitignored), put `HF_TOKEN=hf_...` inside, then run `./scripts/push_hf_space.sh` — the script loads `.env` automatically.

If you already use **`source scripts/activate.sh`** with a secrets file ([`scripts/local.env.example`](../scripts/local.env.example)), putting `export HF_TOKEN=...` in that secrets file also works before running the script.

That uses `git subtree split` to push **only** the `space/` tree to `spaces/ystrittm/psyche` (no second working copy). If the Space still has the default FastAPI starter and push is rejected, run **once**:

```bash
HF_SPACE_FORCE=1 ./scripts/push_hf_space.sh
```

Optional: `HF_USERNAME` (your HF username) if `oauth2` as user does not work with your token setup.

### Option B — GitHub Actions (push to GitHub → Space updates)

This repo includes **[`.github/workflows/sync-psyche-space.yml`](../.github/workflows/sync-psyche-space.yml)**. Add a repository secret **`HF_TOKEN`** (same write token as above): GitHub → **Settings** → **Secrets and variables** → **Actions** → **New repository secret**.

When you push to **`main`** and **`space/`** changes, the workflow runs `scripts/push_hf_space.sh` so you do not have to run it locally.

### Option C — Second clone (optional)

You *can* clone `https://huggingface.co/spaces/ystrittm/psyche` elsewhere and copy from `space/`, but it duplicates work—prefer **A** or **B**.

---

Optional: add `HF_TOKEN` in **Space → Settings → Secrets** when the app reads private Hub data (not used by the current demo).

## GitHub → this URL

Set the PSYCHE GitHub repo **Website** to `https://huggingface.co/spaces/ystrittm/psyche` and link it from the root README / docs.