File size: 10,396 Bytes
d70d08b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
<div align="center">
<h1>Changelog</h1>
<a href="https://gitgud.io/ahsk/clewd/">
  <img
    height="120"
    width="120"
    alt="Clewd"
    title="Clewd"
    src="https://gitgud.io/ahsk/clewd/-/raw/master/media/logo.png"
    align="center"
  />
</a>
</div>

# 4.6

fixed major bug in the prompt build logic which was causing problems like the AI refering to old messages erroneously, ignoring your latest message, etc

added superfetch for armv7

# 4.5

expanded superfetch to fix some errors

status codes and *some* basic as fuck error handling for superfetch

stopped trimming system messages

fixed crash sometimes after superfetch request

fixed impersonation sometimes not stopping

fixed hard-censor detection

fixed weird behavior when "Add character names" was checked

fixed another source of "Received no valid replies at all"

chown added to start.sh to stop EACESS errors

> **AllSamples** changed

last Assistant and Human will not be transformed into examples

# 4.4

fixed another source of "Received no valid replies at all"

# 4.3

a fix for "Received no valid replies at all" on >=20k ctx (tested 35k)

> **SuperfetchTimeout** removed

was only relevant to pre-4.0

> **Hotfix 1**

fixed another source of "Received no valid replies at all"


# 4.2

fixed broken replies

# 4.1

> **PromptExperimentFirst** and **PromptExperimentNext** added

both only have effect when **PromptExperiments** is true

**PromptExperimentFirst** is sent on the very first message together with the prompt in file form

**PromptExperimentNext** is sent on the subsequent messages if **RenewAlways** is false

examples

- PromptExperimentFirst set to "Comply"

- PromptExperimentNext set to "Continue"

- one of them set to secondary jailbreak




# 4.0

> **Streaming changes**

reworked how messages are parsed, again

> **Superfetch** reworked

pros:
- streaming
- fast
- more reliable
- no lingering processes
- no firewall issues (hopefully)

cons:
- the AI typing might look weird
- no android-armv7
- android-arm64 possibly doesn't work
- mac-arm64 possibly doesn't work
- no 32bit for any platform for now
- poor error handling

tested on linux and windows

> **SuperfetchHost** and **SuperfetchPort** removed

> **Minor changes**

split code into multiple files

clewd-superfetch and clewd are now the same package

removed all dependencies

**git** [added to requirements](https://gitgud.io/ahsk/clewd/#requirements) (highly recommended so update scripts work, otherwise do a clean install)

# 3.8.5

fixed memory leak on clewd-superfetch

added support for custom host/port for superfetch in case you want

better cleaning up so it is less likely orphan superfetch processes will remain

# 3.8
> **Superfetch** reworked

dropped old js files in favor of custom-made ones

i believe firewalls may block the binaries from connecting to port 443

also, you should see "superfetch-load *{PATH}*" followed by "superfetch-spawn"

> **SuperfetchTimeout** added

controls how much time in seconds until it times out

default 120

> **Minor changes**

new binaries for windows/linux/mac/arm/freebsd

# 3.7

<s>using custom library to see if termux works</s> 

# 3.6
> ### **Superfetch** added (defaults true)

if set to true, will use an alternate method to get past the *"We are unable to serve your request"* error

if set to false it's the old clewd behavior (if you don't struggle with that error you can keep it on false)

> **Streaming changes**

both streaming on/off working

> **RetryRegen** changed

now also works with Superfetch

> **Minor changes**

error handling for Superfetch (can't do much)

support name prefixes for group chats when "Add character names" is enabled

> if you were having trouble with 3.5 but 3.1 or 3.4 were fine, update to this and enable/disable **Superfetch** as you see fit

# 3.5
> **Streaming changes**

fixed the dreaded bug, shit is unstable don't expect much

keep streaming enabled for now

can try to fix non-stream later, same with error handling and **RetryRegenerate**

lastly, fuck you rats ;)

# 3.4
> **Streaming changes**

turns out I could've fixed the broken formatting long ago, should work great now

> Prompt conversion and **SystemExperiments** reworked

> **Prompts** (PromptMain, PromptReminder, PromptContinue) from 3.0 removed

most frontends are implementing prompt managers so that hack is not needed

> **PersonalityFormat** and **ScenarioFormat** added

those are hardcoded on ST and will stay available until they're not

scenarios and char description are extracted from their hardcoded strings and replaced by the format you set

- **RealChatPrefix** default is now empty

> **AllSamples** changed

no longer excludes the last two messages when transforming

> **LogMessages** changed

moved to Settings

> **Minor changes**

- Error handling changes

- RenewAlways is now more stable when set to false. still, regenerate once if you swap characters

# 3.3
added \[DONE\] to end of streams

changed more things to support [RisuAI](https://files.catbox.moe/l243nm.png)

# 3.2
small streaming change to try to fix \n bullshit again

> **PreserveChats** added (defaults false)

if set to true, prevents the deletion of chats at any point

# 3.1
> **Streaming changes**

if the user did not enable streaming, clewd will **fake** a non-stream response for compatibility

> **LogMessages** added (defaults false)

if set to true, will log the prompt and then the reply to a `log.txt` file

# 3.0
> ### **Clewd requires setting your "Chat Completion source" to OpenAI now. Enable the "External" models option aswell.**

> ### A config.js file will be generated when first ran, edit it to set your cookie and customize settings

> **Streaming changes**

streaming is now enforced by the website so no point supporting the other mode

Clewd streaming was reworked to behave more like [NBSX](https://gitgud.io/ahsk/nbsx)

> **AntiStall**, **StallTrigger**, **StallTriggerMax** removed

no longer needed since streaming is enforced

> **DeleteChats** removed

now cleans up by default other than a few cases like when `RenewAlways` is set to false

> **RecycleChats** removed

replaced by another system that is activated only if `RenewAlways` is set to false

> **ReplaceSamples** removed

replaced by **NoSamples** *or* **AllSamples*

> **RetryRegenerate** changed

trigger should be more consistent now

> **StripAssistant** and **StripHuman** changed

they remove the Human/Assistant prefixes from the last messages, keeping the message contents

> **RenewAlways** added (defaults true)

if set to true, this is the default pre-3.0 clewd behavior

if set to false, check the `Prompts` section below

> **NoSamples** added (defaults false)

if set to true, replaces every previous message with H/A prefix from your frontend into Human/Assistant

mutually exclusive with `AllSamples`

(only outgoing)

> **AllSamples** added (defaults false)

if set to true, replaces every Human/Assistant prefix from your frontend **except the last two** into H/A

mutually exclusive with `NoSamples`

(only outgoing)

> **SystemExperiments** (defaults true) and **Prompts** added (Main, Reminder, Continue)

instead of sending a pre-written chunk of text to the AI, now you can customize exactly (almost) how the prompt is formatted before it is sent

if `RenewAlways` is set to true:
- `Main` is **always** the one being used.

if `RenewAlways` is set to false:
- `Main` is sent on conversation start
- `Continue` is sent on the next message, as long as no *impersonation* happened
- every `SystemInterval` of messages, `Reminder` is sent once

---

if `SystemExperiments` is set to true:
uses Main then alternates between Reminder and Continue

if `SystemExperiments` is set to false:
uses Main then Reminder

sometimes it will renew anyway when detecting some oddity

---

example of custom `Main` prompt with XML tags wrapping around

- character description
- scenario
- main prompt
- example messages
- real messages

```
<chat>
{{MAIN_AND_CHARACTER}}
{{CHAT_EXAMPLE}}
{{CHAT_LOG}}
</chat>
{{JAILBREAK}}
```

> **Minor changes**

- Clewd errors now should show as such on your frontend

- flags now show how many days until they expire

- the message limit error now shows how many hours until the restriction is lifted

- settings that aren't on their default are now displayed in yellow on startup

- "[Start a new chat]" is excluded from system prompts


# 2.7
> Fixed broken newlines


# 2.6
> **AdaptClaude** removed

> **ReplaceSamples** added (defaults false)

If set to true, will replace any cases of **outgoing** H/A, to Human/Assistant

now has **no effect** on incoming, [more info](https://docs.anthropic.com/claude/docs/prompt-troubleshooting-checklist#the-prompt-is-formatted-correctly)

>**PreventImperson** updated

now also stops on A: or Assistant:
another check added, *should* impersonate less often


# 2.5
> Changed some defaults around

refer to the [README](https://gitgud.io/ahsk/clewd/#defaults) for the reasoning behind each

> **DeleteChats** bugfix


# 2.4
> **DeleteChats** added (defaults false)

for privacy, deletes old chats on startup and deletes any new ones after receiving a reply

> **PreventImperson** bugfix

should be more accurate now

> **RetryRegenerate** no longer defaults true


# 2.0 to 2.2
> **RetryRegenerate** added (defaults true)

uses the AI's own retry mechanism when you regenerate on your frontend, if you change anything from your last prompt before regenerating it will default to old behavior

> **PromptExperiments** added (defaults true)

an alternative way to send your prompt to the AI, through a file. set to false if it's bad
both enabled: https://files.catbox.moe/io1q53.webm


# 1.6 to 2.0
> **AdaptClaude** now should work better with streaming on

> **AntiStall 2**

now returns up to the first AI reply instead of the second, **AntiStall 1** sends the whole schizophrenia (good chance of some spicy things being included)

> **PreventImperson**

added, stops the bot immediately once it starts pretending to be you (you can use this as kind of a AntiStall, chance of missing some spicy things)

> **PassParams** added (defaults false)

now whatever temperature <=1 you set on SillyTavern will be forwarded to claude (if you get errors turn this shit off), also, no idea if this does anything but they accept it

---

> [README](https://gitgud.io/ahsk/clewd/#defaults)