merhaba arkadaşlar, 2 gün önce bir konuya denk geldim. ufak bir sohbetimiz oldu konu içinde, tasarım resmi gönderdim ve yz çok benzer şekilde saniyeler içinde aynı tasarımı oluşturdu. onu gördükten sonra yz kullanmaya karar verdim. chatgpt plus aldım ve vscode'da eklenti (codex) olarak kurdum. bir proje dizini oluşturdum ve bu tasarım stillerini kullanarak, yeni tasarım blokları oluşturmasını istedim. bir süre sonra fark ettim ki token diye bir olay var. o limite ulaşırsam, vscode'u kapatırsam, yeni sohbet ekranına geçersem eski bağlamı ve tercihlerimi tekrar tekrar anlatmam gerekecek. bende bunu önlemek için şöyle bir komut verdim "tasarım prensiplerini ve kullanıcı tercihlerimi, daha sonra senin anlayabileceğim bir formatta kullanmam için yaz"
bana böyle bir çıktı verdi. hemen
@Saitama; mesaj atıp bundan bahsettim, bu duruma önlem olarak bi eklenti kullanıyormuş, karşılık olarak şu
https://www.memoryplugin.com/ linki attı. baktım en ucuz yıllık plan 50 dolar, 497 dolara kadar da yolu var. kendi kendime ben buna para vermem dedim. bu durumu nasıl çözerim diye düşünürken aşağıdaki mantığı geliştirdim. kendi bellek dosyamı oluşturup, okuyup, güncelleyeceğim. bunu da sizlerle paylaşmak istedim.
1 Proje Dizininizi Oluşturun
theme adında bir klasör oluşturdum ve öyle devam ettim, istediğiniz yerde istediğiniz dizini oluşturabilirsiniz. hiç önemi yok. bu aşamada 2 önemli dizin oluşturuyoruz; ".vscode" ve ".codex", biri IDE ayarlarını saklayacağımız dizin diğeri ise eklenti ayarları için gerekli, yani codex için.
not: markdown konu açarken editörde çalışıyor ama konuyu açınca text'e dönüyor, sanırım üyelik ile alakalı. bu yüzden resim olarak ekledim
2 Sabit Proje Kuralları: .vscode/memo-core.txt
burada konuşmanın başında belirttiğim ayarları codex'in kendinden almıştım, boş bırakırsanız test aşamasında sorun olabilir, benzer bir komut ile mevcut ayarları isteyin.
MEMO::UI
THEME: body[data-theme="dark"][data-palette="purple"] only.
PALETTE: use existing CSS tokens (color-bg/text/shadow±, color-primary[
]); no hardcoded rgba unless derived via color-mix(); respect neumorphic shadows.
BUTTONS: always reuse components/buttons.css (.btn, .btn-outline, .btn-reverse); never redefine.
LAYOUT STYLES: primary styles live in assets/css; new experimental/test styling must go in /test/*.css while leveraging theme tokens.
HERO: completed 18 variants (hero-sections.html/css/js); keep JS interactions (IntersectionObserver, parallax, newsletter feedback, video playback) intact.
RANGE: RangeManager module in assets/js/range.js manages range UI; maintain separation.
ANIMATIONS/UX: overlay text readable; animations trigger on scroll via IntersectionObserver; parallax honours prefers-reduced-motion; mobile responsiveness required.
BLOCKS::PENDING
- Feature Sections
- CTA Sections
- Pricing Sections
- Header Sections
- Newsletter Sections
- Stats Sections
- Testimonials Sections
- Blog Sections
- Contact Sections
- Team Sections
- Content Sections
- Logo Clouds
- FAQs
- Footers
- Headers (alt varyasyonlar)
- Flyout Menus
- Banners
NEXT: focus on strengthening core UI kit before adding new section series.
bu dosyayı istediğinizde güncelleyebilirsiniz, açılışta bağlama dahil edilecek bu ayarlar.
3 canlı durum bilgisini alma: .codex/memo-sync.py
bu dosya birleşik bağlam oluşturmak için tetikleyici olarak çalışıyor, değişiklikleri tarihi ile birlikte kayıt eder.
import os
import time
import json
from datetime import datetime
PROJE_KOK = r"KULLANDIĞINIZ_DİZİNİN_TAM_YOLUNU_BELİRTİN"
CORE_MEMO = os.path.join(PROJE_KOK, ".vscode", "memo-core.txt")
LIVE_MEMO = os.path.join(PROJE_KOK, ".codex", "memo-live.txt")
CONTEXT_JSON = os.path.join(PROJE_KOK, ".codex", "memo-context.json")
# DAHİL EDİLECEK ALT DİZİNLERİ GÜNCELLEYİN
IZLENECEK_KLASORLER = [
os.path.join(PROJE_KOK, "assets"),
os.path.join(PROJE_KOK, "components"),
os.path.join(PROJE_KOK, "test")
]
KONTROL_ARALIGI = 1.0
def oku(yol):
try:
with open(yol, "r", encoding="utf-8") as f:
return f.read()
except FileNotFoundError:
return ""
except Exception as e:
print(f"[UYARI] {yol} okunamadi: {e}")
return ""
def yaz(yol, icerik):
try:
with open(yol, "w", encoding="utf-8") as f:
f.write(icerik)
except Exception as e:
print(f"[HATA] {yol} dosyasina yazilamadi: {e}")
def dosya_zamani(yol):
try:
return os.path.getmtime(yol)
except FileNotFoundError:
return 0
def dosyalari_topla():
bulunan = []
for klasor in IZLENECEK_KLASORLER:
for kok, _, dosyalar in os.walk(klasor):
for d in dosyalar:
if d.endswith((".css", ".js", ".html")):
bulunan.append(os.path.join(kok, d))
return bulunan
def memo_live_uret():
suan = datetime.now().strftime("%H:%M:%S")
dosyalar = dosyalari_topla()
satirlar = [
f"MEMO::LIVE guncellendi saat {suan}",
f"Izlenen dosya sayisi: {len(dosyalar)}"
]
for f in dosyalar:
satirlar.append(" - " + os.path.relpath(f, PROJE_KOK))
return "n".join(satirlar)
def baglam_guncelle():
core = oku(CORE_MEMO)
live = oku(LIVE_MEMO)
icerik = f"{core}nn---nn{live}"
payload = {
"language": "tr",
"updated": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
"content": icerik
}
yaz(CONTEXT_JSON, json.dumps(payload, ensure_ascii=False, indent=2))
print(f"Baglam guncellendi ({datetime.now().strftime('%H:%M:%S')})")
def main():
print("Codex Memo Sync baslatildi...")
onceki_durum = {}
yaz(LIVE_MEMO, memo_live_uret())
baglam_guncelle()
while True:
degisti = False
for f in dosyalari_topla():
mod_zaman = dosya_zamani(f)
if f not in onceki_durum or mod_zaman != onceki_durum[f]:
onceki_durum[f] = mod_zaman
degisti = True
if degisti:
yaz(LIVE_MEMO, memo_live_uret())
baglam_guncelle()
time.sleep(KONTROL_ARALIGI)
if __name__ == "__main__":
main()4 açılışta sabit kuralları yüklemek için: .codex/memo-load.py
codex yerel endpoint olacak, eğer codex henüz açılmamışsa sorun değil kuralları memo-context.json içine yazar ve bir bağlam kaybı olmaz.
import os
import json
PROJE_KOK = r"KULLANDIĞINIZ_DİZİNİN_TAM_YOLUNU_BELİRTİN"
CORE_MEMO = os.path.join(PROJE_KOK, ".vscode", "memo-core.txt")
CONTEXT_JSON = os.path.join(PROJE_KOK, ".codex", "memo-context.json")
def oku(yol):
try:
with open(yol, "r", encoding="utf-8") as f:
return f.read()
except FileNotFoundError:
return ""
except Exception as e:
print(f"[UYARI] {yol} okunamadi: {e}")
return ""
def baglam_yukle():
icerik = oku(CORE_MEMO)
if not icerik.strip():
print("memo-core.txt bos veya bulunamadi.")
return
payload = {
"type": "startup_context",
"language": "tr",
"content": icerik
}
with open(CONTEXT_JSON, "w", encoding="utf-8") as f:
json.dump(payload, f, ensure_ascii=False, indent=2)
print("Proje baglami kaydedildi (memo-context.json).")
if __name__ == "__main__":
baglam_yukle()5 basit yükleyici: .codex/context-loader.py
buradaki amaç memo-context.json dosyasını okuyarak vscode açıldığında bağlamın yüklendiğini görebilmek.
import os
import json
PROJE_KOK = r"KULLANDIĞINIZ_DİZİNİN_TAM_YOLUNU_BELİRTİN"
CONTEXT_JSON = os.path.join(PROJE_KOK, ".codex", "memo-context.json")
def yukle_baglam():
try:
with open(CONTEXT_JSON, "r", encoding="utf-8") as f:
data = json.load(f)
content = data.get("content", "")
if not content.strip():
print("Baglam bos veya eksik.")
return
print("Baglam yuklendi, kullanima hazir.")
print("---- OZET ----")
print(content[:500])
print("--------------")
except FileNotFoundError:
print("memo-context.json bulunamadi.")
except Exception as e:
print(f"Hata: {e}")
if __name__ == "__main__":
yukle_baglam()6 vscode görevleri: .vscode/tasks.json
proje açıldığında her şeyin otomatik çalışması için yapılandırma. direkt kopyalayabilirsiniz, manuel düzeltme gereken bir dizin adresi bulunmuyor.
{
"version": "2.0.0",
"tasks": [
{
"label": "Load Codex Memo Context",
"type": "shell",
"command": "python",
"args": [
"${workspaceFolder}.codexmemo-load.py"
],
"isBackground": false,
"presentation": {
"reveal": "silent"
},
"runOptions": {
"runOn": "folderOpen"
},
"problemMatcher": []
},
{
"label": "Activate Codex Context",
"type": "shell",
"command": "python",
"args": [
"${workspaceFolder}.codexcontext-loader.py"
],
"isBackground": false,
"presentation": {
"reveal": "silent"
},
"runOptions": {
"runOn": "folderOpen"
},
"problemMatcher": []
},
{
"label": "Run Codex Memo Sync",
"type": "shell",
"command": "python",
"args": [
"${workspaceFolder}.codexmemo-sync.py"
],
"isBackground": true,
"presentation": {
"reveal": "never",
"panel": "shared"
},
"runOptions": {
"runOn": "folderOpen"
},
"problemMatcher": []
}
]
}7 vscode ayarlar: .vscode/settings.json
bu nokta görece biraz tutarsız. codex açıldığında varsayılan olarak programın ana dizinine başvuruyor ve oradaki yapılandırmayı kullanıyor.
{
"codex.configPath": "${workspaceFolder}.codexconfig.toml"
}7. madde bahsi geçen tutarsızlığa değinelim, codex'i kurcalarken yapılandırma dosyasında hiç parametre olmadığını fark ettim. merak edip kullanabileceğim özelliklere baktım ve kendi yapılandırma dosyamı oluşturdum. çalıştırdığım dizinde oluşturmama rağmen, inatla ana dizini kullanıyordu. aynı durumu sizde yaşayabilirsiniz, bu yüzden şu komutu yazarak hangi yapılandırmayı kullanıyor test edin; show active config
bu durumu aşmak için profil isimlendirmesi kullanarak çalışma dizinine dahil ettim yapılandırmayı, sorun kalmadı. (burdaki .vscode/ projenizin altındaki dizin) .vscode/config.toml
active_profile = "theme"
[profiles.theme]
model = "gpt-5-codex" # Kodlama, analiz ve yaratıcı yazım için
model_reasoning_effort = "high" # Derin düşünme (low, medium, high, max)
temperature = 0.5 # Yanıtların yaratıcılığı (0 = tutarlı, 1 = yaratıcı)
top_p = 1 # Cevap çeşitliliğini kontrol eder
max_tokens = 4096 # Yanıt uzunluğu limiti
presence_penalty = 0.4 # Yeni fikirleri teşvik eder
frequency_penalty = 0.2 # Tekrarı azaltır
memo_path = "./.codex/memo.txt" # hafıza dosyası
auto_reload_memo = true # hafızayı otomatik yenileme
# -----------------------------
# ÇALIŞMA ORTAMI
# -----------------------------
auto_save_sessions = true # Her oturumu otomatik kaydeder (bellek taklidi)
session_memory_limit = 10 # Son 10 oturumun bağlamını hatırlasın
context_carryover = true # Önceki oturumlardan bilgiyi taşıyabilir
log_interactions = true # Komut geçmişini kaydeder
log_path = "./.codex/logs/" # Kayıt klasörü
# -----------------------------
# KOD ÜRETİM VE ANALİZ
# -----------------------------
enable_auto_refactor = true # Kod yazıldığında yapıyı iyileştirir
generate_docstrings = true # Fonksiyonlara açıklama ekler
suggest_optimizations = true # Kod sonrası öneri üretir
syntax_check = true # Derleme öncesi sözdizimi kontrolü
yukarıdaki kod da high modu seçiyorum, ancak eklenti tasarımında hata var,
burada medium görünüyor high kullandığım halde. bu sanırım bir çeşit varsayılan görüntü, high mod da olmasam sağdaki %3'lik token bildirimini göstermezdi. bu detayı fark edersiniz veya etmezsiniz, yine de aklınızda bulunsun, high mod ayarınıza rağmen medium ayar görünebilir. tüm bu çalışmaya ek olarak da kendi odak noktama göre codex'in parametrelerini yeniden oluşturdum. tüm bunları uyguladıktan sonrada vscode'u kapatın ve proje klasörünüzü açın.
bağlam aktifse hiçbir sorun yoktur. daha sonra codex'i açıp test edin.
geçmişi olmayan bir konuşmada bağlamlarınızı yüklüyorsa sistem çalışıyor demektir.
çok kullanma fırsatım olmadı. sadece gerekli testleri yaptım ve çalıştığını görünce gelip sizinle paylaşmak istedim. bu çalışmayı geliştirmek isteyen olursa da mutlu olurum, şimdiden ellerinize sağlık.