diff --git a/CHANGELOG.md b/CHANGELOG.md
index ddfe7cdcf47305ebb4b3b06db5f1002919f1a172..c2af31fce036b39b66b929172462a5d79952dd99 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -53,6 +53,7 @@
 ### Client
 - リストTLで、ユーザーが追加・削除されてもTLを初期化しないように
 - URL取得変数を関数に変更 CURRENT_URL -> Mk:url()
+- プレビューの表示状態を記憶するように
 - Fix: モバイル表示のときページ下部がナビゲーションバーに隠れる問題を修正
 - Fix: 一部モーダルダイアログでスクロールできない問題を修正
 - Fix: Selecting all emojis in Custom emoji is impossible
diff --git a/packages/frontend/src/components/MkPostForm.vue b/packages/frontend/src/components/MkPostForm.vue
index afbec98d6149dc72e066e8df7f37ce9ef608f38b..cbf0d8d8716afd89004f58dc729961218da99588 100644
--- a/packages/frontend/src/components/MkPostForm.vue
+++ b/packages/frontend/src/components/MkPostForm.vue
@@ -171,7 +171,8 @@ let poll = $ref<{
 	expiredAfter: string | null;
 } | null>(null);
 let useCw = $ref(false);
-let showPreview = $ref(false);
+let showPreview = $ref(defaultStore.state.showPreview);
+watch($$(showPreview), () => defaultStore.set('showPreview', showPreview));
 let cw = $ref<string | null>(null);
 let localOnly = $ref<boolean>(props.initialLocalOnly ?? defaultStore.state.rememberNoteVisibility ? defaultStore.state.localOnly : defaultStore.state.defaultNoteLocalOnly);
 let visibility = $ref(props.initialVisibility ?? (defaultStore.state.rememberNoteVisibility ? defaultStore.state.visibility : defaultStore.state.defaultNoteVisibility) as typeof misskey.noteVisibilities[number]);
diff --git a/packages/frontend/src/store.ts b/packages/frontend/src/store.ts
index 1cb3486f744ccdbf528d2f238cdc50be2d38a8c2..e9f672384ef6697f8c6940026ee4a0637e8b909a 100644
--- a/packages/frontend/src/store.ts
+++ b/packages/frontend/src/store.ts
@@ -135,6 +135,10 @@ export const defaultStore = markRaw(new Storage('base', {
 		where: 'deviceAccount',
 		default: false,
 	},
+	showPreview: {
+		where: 'device',
+		default: false,
+	},
 	statusbars: {
 		where: 'deviceAccount',
 		default: [] as {