Kişisel araç kiti (Personal toolkit), yalnızca sizin elinizde olan ayarlarla çalışan küçük bir araç sunucusudur: saat diliminiz, tarihlerin hangi yerel ayarla yazılacağı ve size ait bir imza anahtarı. Bunları konsolun My variables sayfasında bir kez girersiniz. Sonrasında sohbet çalışma alanına “benim için saat kaç?” ya da “bu metni benim anahtarımla imzala” diye sorabilirsiniz; yanıt başka birinin değil, sizin ayarlarınızla üretilir.
Bu rehber yalnızca yöneticiler için değil, herkes içindir. Çalışan ürün üzerinde
27 Eylül 2026’da uçtan uca doğrulandı. Bir kişi üç değeri de girdi, sohbete saati ve
hello metninin imzasını sordu; kendi saat dilimini ve kendi imzasını aldı. Denetim izi
üç değişkenin adını kaydetti, değerlerin hiçbirini kaydetmedi.
Neye ihtiyacınız var
- Konsola ve sohbet çalışma alanına (aimo) olağan oturum açmanız.
- Kişisel araç kitinin sizin için açık olması. My variables sayfasında
Personal toolkit
envkitolarak görünür. Göremiyorsanız yöneticinizden ekibinize açmasını isteyin. - Yalnızca imzalama bölümü için: bir imzayı kendi bilgisayarınızda kontrol etmek isterseniz macOS ya da Linux’ta bir terminal veya Windows’ta PowerShell.
Tek paragrafta nasıl çalışır
Değerleriniz şifreli saklanır ve yalnızca sizin bu araç sunucusuna yaptığınız çağrılarda gönderilir. Sunucu sizin için ayrı bir süreç başlatır; bu süreçte yalnızca sizin değerleriniz bulunur, başkasınınki bulunmaz. On dakika boyunca çağrı gelmezse süreç kapatılır. Model, aracın yanıtlarını (saati, imzayı) görür; imza anahtarınızı asla görmez. Yöneticiler bir değişkeni kaç kişinin girdiğini görebilir, değerin kendisini asla göremez.
1. adım: My variables sayfasını açın
Konsolda oturum açın ve My variables (/vault) sayfasını açın. Personal
toolkit bölümünü bulun. Burada hepsi isteğe bağlı üç değişken vardır:
| Değişken | Nedir | Örnek | Size geri gösterilir mi? |
|---|---|---|---|
MY_TIMEZONE |
IANA adıyla saat diliminiz | Europe/Istanbul, Europe/Berlin, America/New_York |
Evet |
MY_LOCALE |
Tarihlerin nasıl yazılacağı | tr-TR, en-GB, de-DE |
Evet |
MY_SIGNING_KEY |
Metin imzalamak için kişisel anahtarınız | uzun, rastgele bir dizi (aşağıya bakın) | Asla |
Bir değer yazın, Save düğmesine basın; satır kısa bir parmak iziyle birlikte set durumuna geçer. Bir değeri sonradan değiştirmek için yenisini yazıp Replace düğmesine, silmek için Remove düğmesine basın.
Bir anahtarı bunun yerine asla sohbete yapıştırmayın. Sohbete yazılan her şey modele ve denetim izine gider. My variables’a kaydedilen değerler ikisine de gitmez.
2. adım: saat diliminizi ve yerel ayarınızı girin
MY_TIMEZONEalanına saat diliminizin IANA adını, her işletim sisteminin kullandığı Bölge/Şehir biçiminde girin; örneğinEurope/Istanbul. Saat dilimi adları listesinde hepsi bulunur.GMT+3ya daTRTgibi kısa biçimler IANA adı değildir ve çalışmaz.MY_LOCALEalanınatr-TR(Türkçe tarihler) ya daen-GB(İngiliz İngilizcesi) gibi bir dil etiketi girin. Boş bırakırsanız tarihleren-GBbiçiminde yazılır.- Her birinde Save düğmesine basın.
3. adım: aracı bir sohbette açın ve kontrol edin
Çalışma alanında yeni bir sohbet açın, sohbetin araçlarından Personal toolkit’i etkinleştirin ve şunu sorun:
Kişisel araç kitine hangi ayarlarım ulaştı?
Yanıt my_settings aracından gelir ve şöyle görünür (aracın kendi çıktısı
İngilizcedir):
Your variables on this tool server:
- MY_TIMEZONE: set to "Europe/Istanbul" — the time zone my_time answers in
- MY_LOCALE: set to "tr-TR" — how my_time writes dates
- MY_SIGNING_KEY: set (secret — value not shown) — the key sign_text and verify_signature use
Girmediğiniz bir değişken not set olarak görünür. Kullanılamayan bir değer girdiyseniz bu da belirtilir: örneğin geçerli bir IANA adı olmayan bir saat dilimi bildirilir ve yerine UTC kullanılır.
Saat diliminizi kullanmak
Sohbete nerede olduğunuzu söylemeniz hiç gerekmez: araç saat diliminizi My variables’tan okur. Örneğin şunları sorun:
- Benim için saat kaç?
- 2026-10-01 09:00 UTC benim saat dilimimde ve New York’ta kaç eder?
- 1 Ekim’de benim için saat 12:00 olduğunda Tokyo’da saat kaç olur?
MY_TIMEZONE = Europe/Istanbul ve MY_LOCALE = tr-TR iken ikinci sorunun yanıtı
şudur:
1 Ekim 2026 Perşembe 12:00:00 GMT+3 (Europe/Istanbul)
1 Ekim 2026 Perşembe 05:00:00 GMT-4 (America/New_York)
Aynı an, MY_LOCALE = en-GB ile:
Thursday, 1 October 2026 at 12:00:00 GMT+3 (Europe/Istanbul)
Thursday, 1 October 2026 at 05:00:00 GMT-4 (America/New_York)
Saat dilimi girmediyseniz araç UTC ile yanıt verir ve bunu belirtir; örneğin
Thursday, 1 October 2026 at 09:00:00 UTC (UTC) satırının ardından sizi My variables’a
yönlendiren bir satır gelir.
Kendi anahtarınızla metin imzalamak
HMAC-SHA256 imzası ne işe yarar
HMAC-SHA256, bir metinden ve gizli bir anahtardan hesaplanan kısa bir koddur. Aynı anahtarı elinde tutan herkes kodu yeniden hesaplayıp metnin, son boşluğuna kadar, imzalanan metnin aynısı olduğunu doğrulayabilir. Pek çok webhook ve API, bir mesajın anahtarı bilen birinden geldiğini ve yolda değişmediğini böyle kanıtlar.
Akılda tutulacak iki nokta:
- Bu, açık anahtarlı değil ortak sırlı bir imzadır. Anahtarı paylaştığınız kişi de geçerli imza üretebilir. Anahtarı yalnızca imzaları kontrol etmesi gereken sistemle paylaşın.
- Anahtar tam olarak yazdığınız haliyle, metin olarak kullanılır. Onaltılık (hex) karakterlerden oluşan bir anahtar önce çözülmez; karakterlerin kendisi anahtardır.
1. Kendi bilgisayarınızda bir anahtar oluşturun
Uzun, rastgele bir anahtar üretin. Aşağıdakilerin her biri 64 rastgele onaltılık karakter yazdırır.
macOS ve Linux (Terminal):
openssl rand -hex 32
Windows (PowerShell; hem Windows PowerShell 5.1 hem PowerShell 7):
$bytes = New-Object byte[] 32
[System.Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($bytes)
-join ($bytes | ForEach-Object { $_.ToString('x2') })
Çıktıyı kopyalayın. İmzalarınızı kontrol edecek karşı tarafın ihtiyaç duyduğu yerde bir kopyasını saklayın; örneğin parola yöneticinizde.
2. MY_SIGNING_KEY olarak kaydedin
My variables sayfasında, Personal toolkit altındaki MY_SIGNING_KEY alanına
yapıştırın ve Save düğmesine basın. Değer size bile bir daha gösterilmez; parmak
izi bir anahtarın girilmiş olduğunu gösterir.
3. Sohbette “hello” metnini imzalayın
Sohbete şunu sorun:
“hello” metnini benim anahtarımla imzala.
sign_text aracı yalnızca imzayla yanıt verir:
HMAC-SHA256 (hex): <64 hexadecimal characters>
Signed 5 bytes with your MY_SIGNING_KEY.
5 bytes, hello metninin uzunluğudur. Model araya bir boşluk ya da satır sonu
eklediyse bayt sayısı bunu gösterir. Karşı sistem öyle bekliyorsa onaltılık yerine
base64 isteyin.
4. İmzayı kendi bilgisayarınızda kontrol edin
Aynı imzayı anahtarınızla yerelde yeniden hesaplayın. İkisi aynıysa sohbet tam olarak
hello metnini tam olarak sizin anahtarınızla imzalamıştır. Aşağıdaki komutlarda
paste-your-key-here yazan yere kendi anahtarınızı yapıştırın.
macOS ve Linux:
KEY='paste-your-key-here'
printf '%s' 'hello' | openssl dgst -sha256 -hmac "$KEY" | awk '{print $NF}'
Windows (PowerShell):
$key = 'paste-your-key-here'
$text = 'hello'
$hmac = New-Object System.Security.Cryptography.HMACSHA256 (,[System.Text.Encoding]::UTF8.GetBytes($key))
-join ($hmac.ComputeHash([System.Text.Encoding]::UTF8.GetBytes($text)) | ForEach-Object { $_.ToString('x2') })
Python 3 bulunan herhangi bir sistem:
python3 -c 'import hmac,hashlib,sys; print(hmac.new(sys.argv[1].encode(), b"hello", hashlib.sha256).hexdigest())' 'paste-your-key-here'
macOS ya da Linux’ta base64 için -binary ekleyip çıktıyı base64 komutuna verin:
printf '%s' 'hello' | openssl dgst -sha256 -hmac "$KEY" -binary | base64. PowerShell’de
hesaplanan özet üzerinde [Convert]::ToBase64String(...) kullanın.
Komutunuzu önce yanıtı bilinen bir örnekle deneyin. Gerçek anahtarınızı kullanmadan önce komutu, yalnızca deneme için olan bu örnek anahtarla çalıştırın:
| Anahtar | Metin | HMAC-SHA256 (hex) |
|---|---|---|
example-key-replace-me-7f3a91c2 |
hello |
2c7dc87df6dc4ecc10a47c8410264630283876d183f253b1fb95aa1f569d6820 |
Aynı örneğin base64 karşılığı:
LH3IffbcTswQpHyEECZGMCg4dtGD8lOx+5WqH1adaCA=
Yukarıdaki üç komut da tam olarak bu değerleri üretir: macOS’ta (OpenSSL 3 ve yerleşik LibreSSL), Python 3 ile ve PowerShell 7’de çalıştırıldılar ve her biri araç kitinin kendi sonucuyla aynı çıktı.
En yaygın hata echo kullanmaktır. echo hello, hello metnini bir satır sonuyla
birlikte gönderir; bu beş değil altı bayttır ve bambaşka bir imza verir (örnek anahtar
için d85119b6…). Gösterildiği gibi printf '%s' kullanın ya da kabuğunuz
destekliyorsa echo -n.
5. Bir imzayı sohbette doğrulayın
Bir imzayı sizin için kontrol etmesini de araca sorabilirsiniz:
<imza>değerinin “hello” üzerindeki benim imzam olduğunu doğrula.
verify_signature aracı Valid: this is your signature over exactly that text. ya da
NOT valid: the signature does not match that text under your key. diye yanıt verir.
Onaltılık ya da base64 kabul eder ve karşılaştırmayı sabit sürede yapar.
Bir değeri değiştirmek ya da silmek
- My variables’taki Replace ya da Remove, bir sonraki araç çağrınızda geçerli olur. Sunucu yeni değerlerle yeni bir süreç başlatır; yeni bir sohbet açmanız gerekmez.
MY_SIGNING_KEYsilinirsesign_text, sizi My variables’a yönlendirerek MY_SIGNING_KEY is not set diye yanıt verir. Daha önce ürettiğiniz imzalar, o anahtarı hâlâ elinde tutan herkes için geçerli kalır.- Bir anahtar sızmış olabilirse onu burada ve paylaştığınız her yerde değiştirin; eski anahtarı elinde tutan herkes ona uyan imzaları üretmeye devam edebilir.
Bir şeyler yolunda gitmediğinde
| Durum | Ne yapmalı |
|---|---|
| My variables’ta Personal toolkit yok | Henüz sizin için açılmamış. Yöneticinizden ekibinize açmasını isteyin. |
| Sohbet aracı kullanmıyor | Sohbetin araçlarından Personal toolkit’i etkinleştirin ya da adını anın: kişisel araç kitini kullanarak … |
my_time UTC ile yanıt veriyor |
MY_TIMEZONE girilmemiş ya da IANA Bölge/Şehir adı değil. Hangisi olduğunu görmek için kişisel araç kitine hangi ayarlarım ulaştı? diye sorun. |
tr-TR girmenize rağmen tarihler İngilizce |
Yazımı kontrol edin (tireyle tr-TR). Desteklenmeyen bir yerel ayar bildirilir ve yerine en-GB kullanılır. |
sign_text MY_SIGNING_KEY is not set diyor |
My variables’a bir anahtar kaydedin ve yeniden sorun. |
| Yerel imzanız sohbettekinden farklı | Sırayla kontrol edin: echo kullandınız (fazladan satır sonu); metin bir boşluk ya da tırnak işaretiyle farklı (bayt sayısına bakın); kaydettiğinizden farklı bir anahtar yapıştırdınız; onaltılık ile base64’ü karşılaştırdınız. |
| Bir değeri değiştirdiniz ama eskisi kullanılıyor | Yeniden sorun: değişiklik bir sonraki çağrıdan itibaren geçerlidir. Birkaç dakika sonra da sürüyorsa yöneticinize bildirin. |
Neler gizli kalır
- Anahtarınız modele asla ulaşmaz. Yalnızca imza ulaşır. Bir araç yanıtında gizli
bir değer bulunsaydı, sunucudan çıkmadan önce
[uservar:MY_SIGNING_KEY]ile değiştirilirdi. - Size ait bir süreç. Değerleriniz yalnızca sizin için başlatılan bir sürece yüklenir ve süreç durduğunda atılır. İki kişi asla aynı süreci paylaşmaz.
- Denetim izinde değer değil ad. Her çağrı, değişkenlerinizden hangilerinin kullanıldığını adıyla kaydeder. Saat diliminiz gizli değildir, ama yanıtın saklanan kopyası onu bile maskeler.
- Değerlerinizi başka kimse okuyamaz. Yöneticiler yalnızca bir değişkeni kaç kişinin girdiğini görür; biri ayrıldığında o kişinin değerlerini silebilir ama asla okuyamaz.
Bu sayfanın başındaki adım adım gösterim, bir değerin My variables’tan bir araca nasıl ulaştığını anlatır; GitHub makalesi ise aynı kasanın üçüncü taraf bir servisle kullanımını gösterir.