diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index 49d6a836d2..ea7922f268 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -518,6 +518,7 @@ common/views/components/profile-editor.vue:
   is-bot: "このアカウントはBotです"
   is-locked: "フォローを承認制にする"
   careful-bot: "Botからのフォローだけ承認制にする"
+  auto-accept-followed: "フォローしているユーザーからのフォローを自動承認する"
   advanced: "その他"
   privacy: "プライバシー"
   save: "保存"
diff --git a/src/client/app/common/views/components/profile-editor.vue b/src/client/app/common/views/components/profile-editor.vue
index 5f462a2586..75d14236c2 100644
--- a/src/client/app/common/views/components/profile-editor.vue
+++ b/src/client/app/common/views/components/profile-editor.vue
@@ -70,6 +70,7 @@
 		<div>
 			<ui-switch v-model="isLocked" @change="save(false)">{{ $t('is-locked') }}</ui-switch>
 			<ui-switch v-model="carefulBot" @change="save(false)">{{ $t('careful-bot') }}</ui-switch>
+			<ui-switch v-model="autoAcceptFollowed" @change="save(false)">{{ $t('auto-accept-followed') }}</ui-switch>
 		</div>
 	</section>
 
@@ -118,6 +119,7 @@ export default Vue.extend({
 			isBot: false,
 			isLocked: false,
 			carefulBot: false,
+			autoAcceptFollowed: false,
 			saving: false,
 			avatarUploading: false,
 			bannerUploading: false
@@ -156,6 +158,7 @@ export default Vue.extend({
 		this.isBot = this.$store.state.i.isBot;
 		this.isLocked = this.$store.state.i.isLocked;
 		this.carefulBot = this.$store.state.i.carefulBot;
+		this.autoAcceptFollowed = this.$store.state.i.autoAcceptFollowed;
 	},
 
 	methods: {
@@ -217,7 +220,8 @@ export default Vue.extend({
 				isCat: !!this.isCat,
 				isBot: !!this.isBot,
 				isLocked: !!this.isLocked,
-				carefulBot: !!this.carefulBot
+				carefulBot: !!this.carefulBot,
+				autoAcceptFollowed: !!this.autoAcceptFollowed
 			}).then(i => {
 				this.saving = false;
 				this.$store.state.i.avatarId = i.avatarId;
diff --git a/src/models/user.ts b/src/models/user.ts
index 19291a2cbe..61fb7244e0 100644
--- a/src/models/user.ts
+++ b/src/models/user.ts
@@ -69,6 +69,11 @@ type IUserBase = {
 	 */
 	carefulBot: boolean;
 
+	/**
+	 * フォローしているユーザーからのフォローリクエストを自動承認するか
+	 */
+	autoAcceptFollowed: boolean;
+
 	/**
 	 * このアカウントに届いているフォローリクエストの数
 	 */
diff --git a/src/server/api/endpoints/i/update.ts b/src/server/api/endpoints/i/update.ts
index 7bdd52883c..ec6aaa04da 100644
--- a/src/server/api/endpoints/i/update.ts
+++ b/src/server/api/endpoints/i/update.ts
@@ -94,6 +94,13 @@ export const meta = {
 			}
 		},
 
+		autoAcceptFollowed: {
+			validator: $.bool.optional,
+			desc: {
+				'ja-JP': 'フォローしているユーザーからのフォローリクエストを自動承認するか'
+			}
+		},
+
 		isBot: {
 			validator: $.bool.optional,
 			desc: {
@@ -140,6 +147,7 @@ export default define(meta, (ps, user, app) => new Promise(async (res, rej) => {
 	if (typeof ps.isLocked == 'boolean') updates.isLocked = ps.isLocked;
 	if (typeof ps.isBot == 'boolean') updates.isBot = ps.isBot;
 	if (typeof ps.carefulBot == 'boolean') updates.carefulBot = ps.carefulBot;
+	if (typeof ps.autoAcceptFollowed == 'boolean') updates.autoAcceptFollowed = ps.autoAcceptFollowed;
 	if (typeof ps.isCat == 'boolean') updates.isCat = ps.isCat;
 	if (typeof ps.autoWatch == 'boolean') updates['settings.autoWatch'] = ps.autoWatch;
 	if (typeof ps.alwaysMarkNsfw == 'boolean') updates['settings.alwaysMarkNsfw'] = ps.alwaysMarkNsfw;
diff --git a/src/services/following/create.ts b/src/services/following/create.ts
index 46b818f8bb..fac53c40af 100644
--- a/src/services/following/create.ts
+++ b/src/services/following/create.ts
@@ -45,8 +45,22 @@ export default async function(follower: IUser, followee: IUser, requestId?: stri
 	// フォロワーがローカルユーザーであり、フォロー対象がリモートユーザーである
 	// 上記のいずれかに当てはまる場合はすぐフォローせずにフォローリクエストを発行しておく
 	if (followee.isLocked || (followee.carefulBot && follower.isBot) || (isLocalUser(follower) && isRemoteUser(followee))) {
-		await createFollowRequest(follower, followee, requestId);
-		return;
+		let autoAccept = false;
+
+		// フォローしているユーザーは自動承認オプション
+		if (isLocalUser(followee) && followee.autoAcceptFollowed) {
+			const followed = await Following.findOne({
+				followerId: followee._id,
+				followeeId: follower._id
+			});
+
+			if (followed) autoAccept = true;
+		}
+
+		if (!autoAccept) {
+			await createFollowRequest(follower, followee, requestId);
+			return;
+		}
 	}
 
 	await Following.insert({