diff --git a/build.sh b/build.sh
new file mode 100644
index 00000000..b62b6772
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,8 @@
+# ensures that we always use the latest version of the script
+if [ -f build-site.sh ]; then
+  rm build-site.sh
+fi 
+
+
+curl https://raw.githubusercontent.com/mongodb/docs-worker-pool/netlify-poc/scripts/build-site.sh -o build-site.sh 
+sh build-site.sh
\ No newline at end of file
diff --git a/config/redirects b/config/redirects
new file mode 100644
index 00000000..6a3690d2
--- /dev/null
+++ b/config/redirects
@@ -0,0 +1,4 @@
+define: base https://www.mongodb.com/docs/mongodb-shell
+
+# DOCSP-44183 - Redirect old free monitoring page
+raw: docs/mongodb-shell/free-monitoring -> ${base}/
diff --git a/netlify.toml b/netlify.toml
new file mode 100644
index 00000000..2d0a3b98
--- /dev/null
+++ b/netlify.toml
@@ -0,0 +1,9 @@
+[[integrations]]
+name = "snooty-cache-plugin"
+
+# Production context: all deploys from the Production branch
+# set in your site’s Branches settings in the UI will inherit
+# these settings.
+[build]
+publish = "snooty/public"
+command = ". ./build.sh"
diff --git a/snooty.toml b/snooty.toml
index f48f202e..90f91d69 100644
--- a/snooty.toml
+++ b/snooty.toml
@@ -1,22 +1,26 @@
 name = "mongodb-shell"
-title = "MongoDB Shell"
+title = "mongosh"
 
 intersphinx = [ "https://www.mongodb.com/docs/manual/objects.inv" ]
 
-toc_landing_pages = ["/run-commands",
+toc_landing_pages = ["/install",
+                     "/install/verify-signatures",
+                     "/run-commands",
                      "/crud",
                      "/field-level-encryption",
                      "/write-scripts",
                      "/snippets",
                      "/configure-mongosh",
                      "/reference/configure-shell-settings",
-                     "/reference/ejson"
+                     "/reference/ejson",
+                     "/logs",
+                     "/logs/retention"
                     ]
 
 [constants]
 
-version = "2.1.0"
-mdb-version = "7.0"
+version = "2.4.0"
+mdb-version = "8.0"
 pgp-version = "{+mdb-version+}"
 atlas = "MongoDB Atlas"
 
diff --git a/source/changelog.txt b/source/changelog.txt
index 57e8e0af..cf3b2f23 100644
--- a/source/changelog.txt
+++ b/source/changelog.txt
@@ -4,6 +4,9 @@
 Release Notes
 =============
 
+.. meta::
+   :description: Explore the changelog for `mongosh`, detailing new features, bug fixes, and updates across various versions.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
@@ -12,6 +15,529 @@ Release Notes
    :depth: 1
    :class: singlecol
 
+
+=======
+v2.5.0
+------
+
+*Released April 9, 2025*
+
+New features released in this version:
+
+- :issue:`MONGOSH-1873` - Support new BSON vector types in mongosh
+- :issue:`MONGOSH-1649` - Add automerge information to sh.status()
+- :issue:`MONGOSH-1100` - Add Mongo bulkWrite API
+- :issue:`MONGOSH-1919` - Add sh.isConfigShardEnabled and listShards helpers
+
+`Full release notes available on JIRA 
+<https://jira.mongodb.org/issues/?jql=project%20%3D%20MONGOSH%20AND%20fixVersion%20%3D%202.5.0>`__.
+
+v2.4.2
+------
+
+*Released March 6, 2025*
+
+New feature released in this version:
+
+- :issue:`MONGOSH-1926` - Added the ``sh.moveRange`` helper method.
+
+`Full release notes available on JIRA 
+<https://jira.mongodb.org/issues/?jql=project%20%3D%20MONGOSH%20AND%20fixVersion%20%3D%202.4.2>`__.
+
+v2.4.0
+------
+*Released February 24, 2025*
+
+``mongosh`` now uses the following driver versions:
+
+- `Node.js driver 6.13.0 <https://github.com/mongodb/node-mongodb-native/releases/tag/v6.13.0>`__.
+- `Node.js BSON package 6.10.3 <https://github.com/mongodb/js-bson/releases/tag/v6.10.3>`__.
+
+New features released in this version:
+
+- :issue:`MONGOSH-2013` - Added a ``history()`` command, which returns an array of 
+  all previously run commands.
+  
+- :issue:`MONGOSH-1090` - Added a ``log.getPath()`` command, which returns the path
+  to the currently active log file.
+
+- :issue:`MONGOSH-1995` - Added help output for logging commands.
+
+- Added the following logging configuration options, which you can set directly
+  in the :ref:`configuration file <configure-settings-global>`, or by calling 
+  the :ref:`config api <configure-settings-api>`.
+
+  - :issue:`MONGOSH-1988` - Disable logging by setting ``disableLogging: true``.
+
+  - :issue:`MONGOSH-1983`, :issue:`MONGOSH-2012` - Specify a custom path for
+    :ref:`log files <mdb-shell-logs>` by setting ``logLocation``.
+
+  - :issue:`MONGOSH-1986` - Compress log files by setting 
+    ``logCompressionEnabled: true``.
+
+  - :issue:`MONGOSH-1984` - Limit the number of days to keep log files by
+    setting ``logRetentionDays`` (default 30).
+
+  - :issue:`MONGOSH-1985` - Limit the maximum size of the logs directory by
+    setting ``logRetentionGB`` (default uncapped).
+
+  - :issue:`MONGOSH-1987` - Limit the maximum number of log files by setting
+    ``logMaxFileCount`` (default 100).
+
+
+Bug Fixes:
+
+- :issue:`MONGOSH-1914` - Fixed an issue where multiple ``mongosh`` processes
+  could attempt to remove outdated log files at the same time, leading to one
+  process terminating with ``Error: ENOENT: no such file or directory``.
+
+- :issue:`MONGOSH-2002` - Improved error messaging when attempting to serialize
+  a cursor.
+
+`Full release notes available on JIRA 
+<https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=17381&version=42122>`__.
+
+
+v2.3.9
+------
+*Released February 5, 2025*
+
+.. important::
+   This release includes fixes for security issues. Upgrade to ``mongosh`` 
+   2.3.9 at your earliest convenience.
+
+- Upgrades Node.js version to 20.18.2. Node 20.18.2 resolves security issues. 
+  For more information, see the  `January 21, 2025 Node.js security release \
+  <https://nodejs.org/en/blog/release/v20.18.2>`__.
+
+- Stricter validation of user input to address 
+  `CVE-2025-1691 <https://nvd.nist.gov/vuln/detail/CVE-2025-1691>`__, 
+  `CVE-2025-1692 <https://nvd.nist.gov/vuln/detail/CVE-2025-1692>`__, 
+  and `CVE-2025-1693 <https://nvd.nist.gov/vuln/detail/CVE-2025-1693>`__.
+
+New features released in this version:
+
+- :issue:`MONGOSH-1989` - Added ability to log custom messages in scripts by 
+  calling ``log.[debug|info|warn|error|fatal]()``
+
+`Full release notes available on JIRA 
+<https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=17381&version=41759>`__.
+
+
+v2.3.8
+------
+
+*Released January 6, 2025*
+
+Contains internal enhancements and improvements.
+
+`Full release notes available on JIRA 
+<https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=17381&version=41730>`__.
+
+
+v2.3.7
+------
+
+*Released December 17, 2024*
+
+Bug Fixes:
+
+- :issue:`MONGOSH-1943` - Fix cause of rare flaky "Mongosh not initialized yet" errors 
+
+`Full release notes available on JIRA
+<https://jira.mongodb.org/browse/MONGOSH-1922?jql=project%20%3D%20MONGOSH%20AND%20fixVersion%20%3D%202.3.7>`__.
+
+v2.3.6
+------
+
+*Released December 13, 2024*
+
+Contains internal enhancements and improvements.
+
+`Full release notes available on JIRA
+<https://jira.mongodb.org/browse/MONGOSH-1922?jql=project%20%3D%20MONGOSH%20AND%20fixVersion%20%3D%202.3.6>`__.
+
+
+v2.3.5
+------
+
+*Released December 12, 2024*
+
+Bug Fixes:
+
+- :issue:`MONGOSH-1935` - Retry connection without system certificates in case 
+  of TLS errors
+- :issue:`MONGOSH-1632` - Add Node.js patch for OpenSSL Windows build fix 
+
+`Full release notes available on JIRA
+<https://jira.mongodb.org/browse/MONGOSH-1922?jql=project%20%3D%20MONGOSH%20AND%20fixVersion%20%3D%202.3.5>`__.
+
+
+v2.3.4
+------
+
+*Released November 27, 2024*
+
+New features released in this version:
+
+- :issue:`MONGOSH-1920` - Add options object to stream processor start, stop,
+  and drop commands
+- :issue:`MONGOSH-1864` - Add stream processor modify command
+
+Bug Fixes:
+
+- :issue:`MONGOSH-1917`, :issue:`MONGOSH-1905` - Include ``nonce`` in OIDC
+  requests by default. Use the ``--oidcNoNonce`` option to suppress this 
+  behavior if your |idp| doesn't support it.
+- :issue:`MONGOSH-1895` - Suppress experimental warning for Node.js 23
+
+`Full release notes available on JIRA
+<https://jira.mongodb.org/browse/MONGOSH-1922?jql=project%20%3D%20MONGOSH%20AND%20fixVersion%20%3D%202.3.4>`__.
+
+
+v2.3.3
+------
+
+*Released October 30, 2024*
+
+New features released in this version:
+
+- :issue:`MONGOSH-1326` - Adds ``shardedDataDistribution`` to
+  :method:`sh.status`.
+- :issue:`MONGOSH-1838` - Accounts for orphan documents in
+  :method:`~db.collection.getShardDistribution()` helper.
+
+Bug Fixes:
+
+- :issue:`MONGOSH-1868` - Aligns database and collection
+  aggregate functions 
+- :issue:`MONGOSH-1608` - ``mongosh`` should throw an error when
+  trying to drop a non-primary index 
+- :issue:`MONGOSH-1868` - Adds support for running aggregate
+  database with a single stage
+- :issue:`MONGOSH-1867` - Fixes incorrect ``db.createView.help``.
+- :issue:`MONGOSH-1697` - Updates the ``help()`` text for the
+  :method:`~db.collection.find` and
+  :method:`~db.collection.findOne` methods.
+- :issue:`MONGOSH-1703` Fixes invalid regular expression error in
+  :method:`db.currentOp`.
+
+`Full release notes available on JIRA
+<https://jira.mongodb.org/issues/?jql=project%20%3D%20MONGOSH%20AND%20fixVersion%20%3D%202.3.3>`__.
+
+
+v2.3.2
+------
+
+*Released October 8, 2024*
+
+Contains internal enhancements and improvements.
+
+- Fixes startup performance regression introduced in ``v2.3.1``.
+
+`Full release notes available on JIRA
+<https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=17381&version=40645>`__.
+
+v2.3.1
+------
+
+*Released September 5, 2024*
+
+Bug fixes in this release:
+
+- :issue:`COMPASS-8252` - Remove certificates without issuer from the TLS CA list
+- :issue:`MONGOSH-1859` - ``ISODate()`` now passes non-string arguments to ``new Date()``
+
+`Full release notes available on JIRA 
+<https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=17381&version=40529>`__.
+
+v2.3.0
+------
+
+*Released August 16, 2024*
+
+New features released in this version:
+
+- :issue:`MONGOSH-1550` - Adds support for Queryable Encryption Range queries and removes support for the Range Preview version. Removes out-of-the-box support for automatic encryption on deprecated Linux operating systems.
+- :issue:`MONGOSH-1827` - Adds configuration support for proxies in environment variables
+- :issue:`MONGOSH-1852` - ``--tlsUseSystemCA`` is enabled by default
+- :issue:`MONGOSH-1845` - Adds debug flag for dumping OIDC tokens to output
+
+Bug fixes in this release:
+
+- :issue:`MONGOSH-1136` - mongosh should use stderr for password prompt
+- :issue:`MONGOSH-1425` - Expand fallback condition for ``$collStats`` to command form to account for ADF
+- :issue:`MONGOSH-1820` - ``fields`` option is not working as expected in findAndModify
+
+`Full release notes available on JIRA 
+<https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=17381&version=40317>`__.
+
+v2.2.15
+-------
+
+*Released July 30, 2024*
+
+
+New features in this release:
+
+- :issue:`MONGOSH-1848` - Added helper for ``shardMoveCollection`` and ``unshardCollection`` commands. 
+  
+Bug fixes in this release:
+
+- :issue:`MONGOSH-1327` - ``sh.status()`` now shows a full list of tag ranges in verbose mode only.
+- :issue:`MONGOSH-1837` - ReadPreference options specified now apply to admin commands.
+- :issue:`MONGOSH-1392` - The ``mongodb-redact`` dependency library has been updated to version ``1.1.2``. This change should
+  help ``mongosh`` processing time for large base64 input data.
+
+`Full release notes available on JIRA 
+<https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=17381&version=40244>`__.
+
+v2.2.12
+-------
+
+*Released July 11, 2024*
+
+Contains internal enhancements and improvements.
+
+`Full release notes available on JIRA 
+<https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=17381&version=40229>`__.
+
+v2.2.11
+-------
+
+*Released July 09, 2024*
+
+Contains internal enhancements and improvements.
+
+Fixes a bug that prevented users from passing options to the
+``explain.find()`` method: 
+
+- :issue:`MONGOSH-1670` - explain().find() ignores collation
+
+`Full release notes available on JIRA 
+<https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=17381&version=40061>`__.
+
+
+v2.2.10
+-------
+
+*Released June 24, 2024*
+
+Contains internal enhancements and improvements.
+
+`Full release notes available on JIRA 
+<https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=17381&version=39987>`__.
+
+v2.2.9
+------
+
+*Released June 14, 2024*
+
+- ``mongosh`` now uses version 6.7.0 of the :driver:`Node.js driver </node/>`.
+
+- :issue:`MONGOSH-1785` - ``mongosh`` now supports Ubuntu 24.04. 
+
+v2.2.6
+------
+
+*Released May 15, 2024*
+
+``mongosh`` now uses version 6.6.2 of the :driver:`Node.js driver </node/>`.
+
+`Full release notes available on JIRA 
+<https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=17381&version=39184>`__.
+
+v2.2.5
+------
+
+*Released April 22, 2024*
+
+Performance improvements:
+
+- :issue:`MONGOSH-1759` – Improves ``mongosh`` startup time approximately 
+  40% by disabling startup snapshot compression in boxed node.
+
+- :issue:`MONGOSH-1765` – ``mongosh`` now skips waiting for server command results 
+  during startup in non-interactive mode.
+
+`Full release notes available on JIRA 
+<https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=17381&version=39062>`__.
+
+v2.2.4
+------
+
+*Released April 15, 2024*
+
+Upgrades to Node.js version 20.12.2. Node 20.12.2 resolves security issues. Vulnerabilities 
+are unlikely to affect typical ``mongosh`` users. For more information, see the 
+`April 10, 2024 Node.js security release
+<https://nodejs.org/en/blog/vulnerability/april-2024-security-releases-2/>`__.
+
+`Full release notes available on JIRA 
+<https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=17381&version=38886>`__.
+
+
+v2.2.3
+------
+
+*Released April 4, 2024*
+
+Issues fixed:
+
+- :issue:`MONGOSH-1752` - Updates Node.js version to 20.12.1. Node 20.12.1 resolves 
+  security issues. Vulnerabilities are unlikely to affect typical ``mongosh`` users. For
+  more information, see the `April 3, 2024 Node.js security release 
+  <https://nodejs.org/en/blog/vulnerability/april-2024-security-releases/>`__.
+
+- :issue:`MONGOSH-1682` - Fixed a race condition that could lead to commands, including 
+  sensitive information, not being properly redacted from the history file.
+
+- :issue:`MONGOSH-1688` - Improved cursor iteration performance by ~60%.
+
+- :issue:`MONGOSH-1751` - Improved startup performance for programmatic usage by 
+  addressing a bug in our update notification manager.
+
+`Full release notes available on JIRA 
+<https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=17381&version=38351>`__.
+
+v2.2.2
+------
+
+*Released March 26, 2024*
+
+Fixes a bug where connections that use OIDC workforce authentication
+caused an error:
+
+- :issue:`MONGOSH-1743` - use JS Proxy for forwarding "lazy-loaded"
+  webpack function exports.
+
+`Full release notes available on JIRA 
+<https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=17381&version=38341>`__.
+
+v2.2.1
+------
+
+*Released March 19, 2024*
+
+Fixes a bug in 2.2.0 where ``require('<module>')`` caused an error in 
+script mode:
+
+- :issue:`MONGOSH-1738` - ``require`` not working in script mode.
+
+`Full release notes available on JIRA 
+<https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=17381&version=38287>`__.
+
+v2.2.0
+------
+
+*Released March 11, 2024*
+
+.. warning::
+   This release is affected by a bug, fixed in 2.2.1, where ``require('<module>')`` 
+   caused an error in script mode.
+
+Performance improvements:
+
+- :issue:`MONGOSH-1605` – ``mongosh`` uses Node.js startup 
+  snapshots again to improve initialization performance.
+
+- :issue:`MONGOSH-1721` – ``mongosh`` now defaults to ``--quiet`` in 
+  non-interactive mode. For example, using ``--json`` or loading files 
+  from the command line without also specifying ``--shell``. Users who 
+  do not want this behavior need to specify ``--no-quiet``.
+
+- :issue:`MONGOSH-1720` – Script execution in non-interactive mode becomes 
+  significantly faster by replacing the underlying evaluation mechanism.
+
+Node.js:
+
+- ``mongosh`` now uses version 6.5.0 of the :driver:`Node.js driver </node/>`.
+
+- :issue:`NODE-5981` – Improved compliance for the Node.js driver. ``mongosh`` 
+  enters ``directConnection=true`` by default when only a single host/port 
+  is given on the command line. This ignores ``readPreference`` options 
+  and consistently applies a ``primaryPreferred`` read preference, even 
+  if a read preference is specified on the connection string or on the 
+  individual command.
+
+OIDC functionality:
+
+- :issue:`COMPASS-7437` – ``mongosh`` will not request default OIDC scopes 
+  that are not supported by the Identity Provider.
+
+- :issue:`MONGOSH-1712` – The ``--tlsUseSystemCA`` flag now also applies 
+  to HTTP requests made to the Identity Provider, to better accommodate 
+  customers behind TLS-terminating firewalls.
+
+Issues fixed:
+
+- :issue:`MONGOSH-1667` – ``passwordPrompt()`` works as originally intended.
+
+- :issue:`MONGOSH-1702` – No more flaky deprecation warnings showing up for 
+  macOS homebrew users.
+
+- :issue:`MONGOSH-1617` – Piping scripts into ``mongosh`` together with 
+  custom prompts from your ``.mongoshrc.js`` works consistently now.
+
+`Full release notes available on JIRA 
+<https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=17381&version=38080>`__.
+
+v2.1.5
+------
+
+*Released February 19, 2024*
+
+Upgrades to Node.js version 20.11.1. Node 20.11.1 resolves security issues. 
+For more information, see the `February 2024 Node.js security release 
+<https://nodejs.org/en/blog/vulnerability/february-2024-security-releases/>`__
+and `CVE-2024-24806 <https://nvd.nist.gov/vuln/detail/CVE-2024-24806>`__.
+
+`Full release notes available on JIRA 
+<https://jira.mongodb.org/secure/ReleaseNote.jspa?version=37926&styleName=&projectId=17381>`__.
+
+v2.1.4
+------
+
+*Released February 7, 2024*
+
+- :issue:`MONGOSH-1198` - Shows the code for an error with the error response.
+
+- :issue:`MONGOSH-1669` - Allows OIDC device auth flow without an ``id_`` token. 
+
+- :issue:`MONGOSH-1679` - Improves error message reading from a secondary. 
+
+- :issue:`MONGOSH-1706` - Accounts for unsharded collections becoming part of 
+  the sharding catalog. This ensures forward compatibility with upcoming server 
+  versions.
+
+`Full release notes available on JIRA 
+<https://jira.mongodb.org/secure/ReleaseNote.jspa?version=37881&styleName=&projectId=17381>`__.
+
+v2.1.3
+------
+
+*Released January 29, 2024*
+
+- :issue:`MONGOSH-1631` - Adds support for the new ``type`` field when creating 
+  search indexes for ``runCommand``, ``createSearchIndex``, and 
+  ``createSearchIndexes`` commands.
+
+- :issue:`MONGOSH-1664` - Removes tests for the ``validate`` command background 
+  option.
+
+`Full release notes available on JIRA <https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=17381&version=37823>`__.
+
+v2.1.1
+------
+
+*Released December 5, 2023*
+
+- :issue:`MONGOSH-1628` - Statically linking kerberos leads to OpenSSL 
+  version conflict on RHEL8 distros 
+- :issue:`MONGOSH-1651` - Sample sessions sent to telemetry
+
+`Full release notes available on JIRA <https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=17381&version=37380>`__.
+
 v2.1.0
 ------
 
@@ -28,6 +554,8 @@ v2.1.0
   syntax: ``for (const doc of db.coll.find()) { }``. Previously, ``mongosh`` only supported ``.forEach`` 
   syntax for iteration.
 
+`Full release notes available on JIRA <https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=17381&version=36935>`__.
+
 v2.0.2
 ------
 
@@ -88,7 +616,7 @@ v2.0.0
   - ``upgradeState``
 
   To obtain version information, see the :ref:`feature compatibility
-  version (fcv) <view-fcv>`.
+  version (FCV) <view-fcv>`.
 
 - Removes support for :ref:`Free Monitoring <free-monitoring-mongodb>`
   helper functions:
@@ -441,7 +969,7 @@ v1.4.2
   or ``false``.
 
 - :issue:`MONGOSH-1204` - Adds visual identifier for Queryable 
-  Encyption collections in ``show collections``.
+  Encryption collections in ``show collections``.
 
 - :issue:`MONGOSH-1207` - Adds Queryable Encryption helpers.
 
@@ -472,7 +1000,7 @@ v1.3.1
 
 - :issue:`MONGOSH-1163` - ``mongosh`` now uses Node.js 14.19.1. Node
   14.19.1 includes an OpenSSL version that addresses
-  `CVE-2022-0778 <https://www.openssl.org/news/secadv/20220315.txt>`__.
+  `CVE-2022-0778 <https://openssl-library.org/news/vulnerabilities/index.html#2022>`__.
 
 v1.3.0
 ------
@@ -520,7 +1048,7 @@ v1.2.1
 
 *Released February 24, 2022*
 
-- :issue:`MONGOSH-1063` - You can now create a global ``monogosh``
+- :issue:`MONGOSH-1063` - You can now create a global ``mongosh``
   :ref:`configuration file <mongosh-shell-settings>`.
 
 - :issue:`MONGOSH-959` – You can now use the :ref:`config.reset
diff --git a/source/configure-mongosh.txt b/source/configure-mongosh.txt
index d0329bf5..30e80af8 100644
--- a/source/configure-mongosh.txt
+++ b/source/configure-mongosh.txt
@@ -25,8 +25,8 @@ Learn how to configure ``mongosh`` behaviors and user experience:
 .. toctree::
    :titlesonly:
  
-   /reference/editor-mode
-   /reference/configure-shell-settings
-   /reference/customize-prompt
-   /telemetry
+   Use an Editor </reference/editor-mode>
+   Configure Settings </reference/configure-shell-settings>
+   Customize Prompt </reference/customize-prompt>
+   Configure Telemetry Options </telemetry>
 
diff --git a/source/connect.txt b/source/connect.txt
index 2f12b23c..bd26037b 100644
--- a/source/connect.txt
+++ b/source/connect.txt
@@ -61,14 +61,14 @@ You can connect to your MongoDB Atlas deployment directly from your shell.
       If you haven't already 
       `created a database user 
       <https://www.mongodb.com/docs/atlas/tutorial/create-mongodb-user-for-cluster/>`__, 
-      you must set a username and password. To connect to Atlas, pass your username with the connection string.
-      the connection string to connect to Atlas. After you issue the 
-      connect command, the shell prompts for your password.
+      you must set a username and password. To connect to Atlas, pass your username with 
+      the Atlas connection string. After you issue the connect command, the 
+      shell prompts for your password.
 
    .. step:: Connect to MongoDB Atlas with ``mongosh``
 
-      To establish your connection, run the ``mongosh`` command with your connection string and options
-      to establish the connection.
+      To establish your connection, run the ``mongosh`` command with your 
+      connection string and options to establish the connection.
 
       The connection string includes the following elements:
 
@@ -258,6 +258,17 @@ To connect to a replica set, you can either:
 - Explicitly specify the replica set name and members in the connection
   string.
 
+.. important::
+
+   When a replica set runs in Docker, it might expose only one 
+   MongoDB endpoint. In this case, the replica set is not discoverable, and specifying 
+   ``directConnection=false`` can prevent your application from connecting to it.
+   
+   In a test or development environment, you can connect to the replica set by specifying
+   ``directConnection=true`` in your connection URI. In a production environment, we
+   recommend configuring the cluster to make each MongoDB instance accessible outside of
+   the Docker virtual network.
+   
 Option 1: DNS Seedlist Format
 `````````````````````````````
 
@@ -345,17 +356,50 @@ To connect to a deployment using TLS, you can either:
 Connect to a Specific Database
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-To connect to a specific database, specify a database in your
-:manual:`connection string URI path </reference/connection-string/>`. If
-you do not specify a database in your URI path, you connect to the
-``test`` database.
+To connect to a specific default database, specify a database in your
+:manual:`connection string URI path </reference/connection-string/>`.
+If unspecified by the connection string, the default database
+is the ``test`` database.
 
 For example, to connect to a database called ``qa`` on localhost, run the
 following command:
 
 .. code-block:: sh
 
-    mongosh "mongodb://localhost:27017/qa" 
+    mongosh "mongodb://localhost:27017/qa"
+
+You can specify the authentication database in your connection string
+using the :urioption:`authSource` connection option. If specified, the
+client uses this database to verify your user identity and credentials. 
+If :urioption:`authSource` is unspecified, it defaults to the default 
+database specified in the connection string. If both :urioption:`authSource` 
+and the default database are unspecified, 
+:urioption:`authSource` defaults to the ``admin`` database.
+
+The following connection string sets the default database to ``myDefaultDB``
+and the authentication database to ``admin``:
+
+.. code-block:: bash
+
+   mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017/myDefaultDB?authSource=admin
+
+Proxy Settings
+~~~~~~~~~~~~~~
+
+To establish a connection with proxy configurations, you can use the 
+following environment variables:
+
+.. include:: /includes/table-proxy-env-variables.rst
+
+.. note:: 
+
+   ``mongosh`` supports the following proxy types: 
+   
+   - Socks5 proxies
+   - HTTP proxies 
+   - CONNECT proxies
+   - :abbr:`PAC (proxy auto-config)` URLs that resolve to one of the previously 
+     listed proxies
 
 Connect to a Different Deployment
 ---------------------------------
diff --git a/source/crud.txt b/source/crud.txt
index d6b06aee..c3302c16 100644
--- a/source/crud.txt
+++ b/source/crud.txt
@@ -70,7 +70,7 @@ For examples, see :ref:`mongosh-delete`.
 .. toctree::
    :titlesonly:
 
-   /crud/insert
-   /crud/read
-   /crud/update
-   /crud/delete
+   Insert </crud/insert>
+   Read </crud/read>
+   Update </crud/update>
+   Delete </crud/delete>
diff --git a/source/crud/delete.txt b/source/crud/delete.txt
index 2996b8fa..fb6af928 100644
--- a/source/crud/delete.txt
+++ b/source/crud/delete.txt
@@ -51,6 +51,15 @@ To delete all documents from a collection, pass an empty
    more information and examples, see
    :method:`~db.collection.deleteMany()`.
 
+.. note::
+
+   If you want to delete all documents from a large collection, dropping
+   with the :method:`db.collection.drop` method. and recreating the
+   collection may have faster performance than deleting documents with
+   the :method:`db.collection.deleteMany()` method. When you recreate
+   the collection, you must also recreate any specified collection
+   parameters such as collection indexes.
+
 Delete All Documents that Match a Condition
 -------------------------------------------
 
diff --git a/source/field-level-encryption.txt b/source/field-level-encryption.txt
index 3600c39c..35fd3cf6 100644
--- a/source/field-level-encryption.txt
+++ b/source/field-level-encryption.txt
@@ -4,6 +4,9 @@
 Client-Side Field Level Encryption
 ==================================
 
+.. meta::
+   :description: Configure client-side field level encryption in `mongosh` for MongoDB clusters using various KMS providers like AWS, Azure, GCP, or a local keyfile.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
diff --git a/source/images/mongosh-plp/Technical_ACTION_SearchDocument_Thumbnail_BS_Mist.png b/source/images/mongosh-plp/Technical_ACTION_SearchDocument_Thumbnail_BS_Mist.png
index db9eaf16..4cd9a040 100644
Binary files a/source/images/mongosh-plp/Technical_ACTION_SearchDocument_Thumbnail_BS_Mist.png and b/source/images/mongosh-plp/Technical_ACTION_SearchDocument_Thumbnail_BS_Mist.png differ
diff --git a/source/images/mongosh-plp/Technical_SOFTWARE_Terminal(1)_Spot.png b/source/images/mongosh-plp/Technical_SOFTWARE_Terminal(1)_Spot.png
index 36021d7d..13a976f2 100644
Binary files a/source/images/mongosh-plp/Technical_SOFTWARE_Terminal(1)_Spot.png and b/source/images/mongosh-plp/Technical_SOFTWARE_Terminal(1)_Spot.png differ
diff --git a/source/images/mongosh-plp/Technical_SOFTWARE_Terminal(3)_Spot.png b/source/images/mongosh-plp/Technical_SOFTWARE_Terminal(3)_Spot.png
index 37c96fe5..9a605444 100644
Binary files a/source/images/mongosh-plp/Technical_SOFTWARE_Terminal(3)_Spot.png and b/source/images/mongosh-plp/Technical_SOFTWARE_Terminal(3)_Spot.png differ
diff --git a/source/images/mongosh-plp/Technical_SOFTWARE_Terminal(4)_Spot.png b/source/images/mongosh-plp/Technical_SOFTWARE_Terminal(4)_Spot.png
index a065fe38..b4f9c108 100644
Binary files a/source/images/mongosh-plp/Technical_SOFTWARE_Terminal(4)_Spot.png and b/source/images/mongosh-plp/Technical_SOFTWARE_Terminal(4)_Spot.png differ
diff --git a/source/images/mongosh-plp/icons/General_ACTION_Develop10x.png b/source/images/mongosh-plp/icons/General_ACTION_Develop10x.png
deleted file mode 100644
index 46e0e655..00000000
Binary files a/source/images/mongosh-plp/icons/General_ACTION_Develop10x.png and /dev/null differ
diff --git a/source/images/mongosh-plp/icons/Technical_MDB_Shell10x.png b/source/images/mongosh-plp/icons/Technical_MDB_Shell10x.png
deleted file mode 100644
index 85f65e5d..00000000
Binary files a/source/images/mongosh-plp/icons/Technical_MDB_Shell10x.png and /dev/null differ
diff --git a/source/images/mongosh-plp/icons/Technical_REALM_CLI_inverse10x.png b/source/images/mongosh-plp/icons/Technical_REALM_CLI_inverse10x.png
new file mode 100644
index 00000000..29c83de7
Binary files /dev/null and b/source/images/mongosh-plp/icons/Technical_REALM_CLI_inverse10x.png differ
diff --git a/source/includes/admonitions/note-redact-credentials-command-history.rst b/source/includes/admonitions/note-redact-credentials-command-history.rst
index 3c1fad77..90afb9df 100644
--- a/source/includes/admonitions/note-redact-credentials-command-history.rst
+++ b/source/includes/admonitions/note-redact-credentials-command-history.rst
@@ -1,5 +1,2 @@
-.. note::
-
-   The |mdb-shell| redacts credentials from the :ref:`command history
-   <mdb-shell-command-history>` and the :ref:`logs
-   <mdb-shell-view-logs>`.
\ No newline at end of file
+The |mdb-shell| redacts credentials from the :ref:`command history
+<mdb-shell-command-history>` and the :ref:`logs <mdb-shell-view-logs>`.
diff --git a/source/includes/examples/ex-eval-json.rst b/source/includes/examples/ex-eval-json.rst
new file mode 100644
index 00000000..00ee6375
--- /dev/null
+++ b/source/includes/examples/ex-eval-json.rst
@@ -0,0 +1,9 @@
+To return statistics about a collection in Extended JSON format using
+multiple ``--eval`` statements: 
+
+.. code-block:: sh
+
+   mongosh --quiet --json=relaxed \
+           --eval 'use <database-name>' \
+           --eval 'db.<collection>.stats()' \
+           mongodb://localhost/
\ No newline at end of file
diff --git a/source/includes/fact-call-limitations.rst b/source/includes/fact-call-limitations.rst
index f4b72074..ffac6cad 100644
--- a/source/includes/fact-call-limitations.rst
+++ b/source/includes/fact-call-limitations.rst
@@ -6,6 +6,7 @@ contexts:
 - Class constructor functions
 - Non-async generator functions
 - Callbacks to ``.sort()`` on an array
+- JavaScript setters in classes
 
 To access to the results of database calls, use `async functions
 <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function>`__,
@@ -75,11 +76,11 @@ The following generator functions do not work:
 
    // This code will fail
    function* FindResults() {
-      yield db.students.findMany();
+      yield db.students.findOne();
    }
 
    // This code will fail
-   function listEntries() { return db.students.findMany(); }
+   function listEntries() { return db.students.findOne(); }
    function* findResults() {
       yield listEntries();
    }
@@ -88,7 +89,7 @@ Use an ``async generator function`` instead:
 
 .. code-block:: javascript
 
-   function listEntries() { return db.students.findMany(); }
+   function listEntries() { return db.students.findOne(); }
    async function* findResults() {
       yield listEntries();
    }
@@ -119,3 +120,24 @@ Use ``.map()`` instead.
 This approach to array sort is often more performant than the
 equivalent unsupported code.
 
+JavaScript Setters 
+~~~~~~~~~~~~~~~~~~
+
+The following JavaScript setter does not work: 
+
+.. code-block:: javascript
+   :copyable: false
+
+   // This code will fail
+   class TestClass {
+     value = 1;
+
+     get property() {
+       return this.value;
+     }
+
+     // does not work:
+     set property(value) {
+       this.value = db.test.findOne({ value });
+     }
+   }
diff --git a/source/includes/fact-certificate-expiry-warning.rst b/source/includes/fact-certificate-expiry-warning.rst
index 144c6cc2..0eb6ba49 100644
--- a/source/includes/fact-certificate-expiry-warning.rst
+++ b/source/includes/fact-certificate-expiry-warning.rst
@@ -1,3 +1,3 @@
 Starting in version 4.4, :binary:`~bin.mongod` / :binary:`~bin.mongos`
-logs a warning on connection if the presented x.509 certificate expires
+logs a warning on connection if the presented X.509 certificate expires
 within ``30`` days of the ``mongod/mongos`` host system time.
diff --git a/source/includes/fact-mongoshrc-loading.rst b/source/includes/fact-mongoshrc-loading.rst
index da78ba7a..b016735a 100644
--- a/source/includes/fact-mongoshrc-loading.rst
+++ b/source/includes/fact-mongoshrc-loading.rst
@@ -11,10 +11,6 @@ on the command line or by specifying a :ref:`.js file
 .mongoshrc.js from being loaded by using the :option:`--norc
 <mongosh --norc>` option.
 
-.. note::
+.. note:: Legacy Shell Configuration 
 
-   The legacy :binary:`~bin.mongo` shell used a configuration file
-   called .mongorc.js. If :binary:`mongosh` detects this file on
-   startup, and .mongoshrc.js is not present, :binary:`mongosh` does not
-   load the legacy .mongorc.js file, and suggests renaming .mongorc.js
-   to .mongoshrc.js.
+   .. include:: /includes/legacy/legacy-shell-configuration.rst
diff --git a/source/includes/legacy/legacy-command-exceptions.rst b/source/includes/legacy/legacy-command-exceptions.rst
new file mode 100644
index 00000000..21e9500d
--- /dev/null
+++ b/source/includes/legacy/legacy-command-exceptions.rst
@@ -0,0 +1,3 @@
+For commands whose output includes ``{ ok: 0 }``, ``mongosh`` returns a
+consistent exception and omits the server raw output. The legacy
+``mongo`` shell returns output that varies for each command.
diff --git a/source/includes/legacy/legacy-data-types.rst b/source/includes/legacy/legacy-data-types.rst
new file mode 100644
index 00000000..1eaff3e6
--- /dev/null
+++ b/source/includes/legacy/legacy-data-types.rst
@@ -0,0 +1,4 @@
+MongoDB stores data using :manual:`BSON </reference/bson-types>`, which
+supports additional data types that aren't available in :term:`JSON`.
+The ``mongosh`` shell has better data type support for
+:ecosystem:`drivers </drivers>` than the legacy ``mongo`` shell.
diff --git a/source/includes/legacy/legacy-load-method.rst b/source/includes/legacy/legacy-load-method.rst
new file mode 100644
index 00000000..453a87d1
--- /dev/null
+++ b/source/includes/legacy/legacy-load-method.rst
@@ -0,0 +1,2 @@
+The legacy ``mongo`` shell cannot access a script's file name or
+directory in the ``load()`` method.
diff --git a/source/includes/legacy/legacy-output.rst b/source/includes/legacy/legacy-output.rst
new file mode 100644
index 00000000..fb684e38
--- /dev/null
+++ b/source/includes/legacy/legacy-output.rst
@@ -0,0 +1,5 @@
+The ``mongosh`` shell returns output that differs from the legacy
+``mongo`` shell. If you have scripts that require the output to be
+formatted in a similar way to the legacy ``mongo`` shell, try
+reformatting the ``mongosh`` output with :ref:`EJSON.stringify()
+<mongosh-ejson-stringify>`.
diff --git a/source/includes/legacy/legacy-retryable-writes.rst b/source/includes/legacy/legacy-retryable-writes.rst
new file mode 100644
index 00000000..4df26832
--- /dev/null
+++ b/source/includes/legacy/legacy-retryable-writes.rst
@@ -0,0 +1,7 @@
+By default, retryable writes are:
+
+- enabled in :binary:`mongosh`
+- disabled in the legacy ``mongo`` shell
+
+To disable retryable writes, use :option:`--retryWrites=false <mongosh
+--retryWrites>`.
diff --git a/source/includes/legacy/legacy-shell-configuration.rst b/source/includes/legacy/legacy-shell-configuration.rst
new file mode 100644
index 00000000..529f23b7
--- /dev/null
+++ b/source/includes/legacy/legacy-shell-configuration.rst
@@ -0,0 +1,6 @@
+The legacy ``mongo`` shell uses a configuration file named
+``.mongorc.js``.
+
+If :binary:`mongosh` finds ``.mongorc.js`` on startup but doesn't find
+``.mongoshrc.js``, ``mongosh`` doesn't load the legacy ``.mongorc.js``
+file and states you should rename ``.mongorc.js`` to ``.mongoshrc.js``.
diff --git a/source/includes/list-table-shell-properties.rst b/source/includes/list-table-shell-properties.rst
index 1da7ab2c..659f365e 100644
--- a/source/includes/list-table-shell-properties.rst
+++ b/source/includes/list-table-shell-properties.rst
@@ -7,6 +7,11 @@
      - Default
      - Description
 
+   * - ``disableLogging``
+     - boolean
+     - ``false``
+     - Specifies whether |mdb-shell| writes log entries.
+
    * - ``displayBatchSize``
      - integer
      - 20
@@ -52,16 +57,63 @@
      - The depth to which objects are printed. Setting ``inspectDepth``
        to ``Infinity`` (the javascript object) prints all nested
        objects to their full depth. 
+   
+   * - ``logCompressionEnabled``
+     - boolean
+     - false
+     - Specifies whether |mdb-shell| compresses log files. When this
+       value is ``true``, |mdb-shell| uses gzip to compress logs. See
+       :ref:`mongosh-log-compression`.
+
+   * - ``logLocation``
+     - string
+     - Depends on your operating system. See :ref:`mdb-shell-view-logs`.
+     - Directory where MongoDB Shell writes log files. Specify an
+       absolute filepath. See :ref:`mongosh-log-location`.
+
+   * - ``logMaxFileCount``
+     - integer or Infinity
+     - 100
+     - Maximum number of log files that the |mdb-shell| retains. After
+       the |mdb-shell| reaches the maximum log file count, it starts
+       deleting the oldest log files until the count is below the
+       threshold. See :ref:`mongosh-log-file-count`.
+
+   * - ``logRetentionDays``
+     - integer or Infinity
+     - 30
+     - Number of days that |mdb-shell| log files are retained. If this
+       value is set to ``Infinity``, log files are not deleted based on
+       age. To prevent log storage from growing too large, always
+       specify at least one log retention criterion. See
+       :ref:`mongosh-logs-retention`.
+
+   * - ``logRetentionGB``
+     - float or Infinity
+     - Unset
+     - Maximum amount of space in gigabytes used for |mdb-shell| logs.
+       If the combined size of |mdb-shell| logs exceeds this value, log
+       files are deleted starting with the oldest logs.
+
+       If this value is set to ``Infinity``, log files are not deleted
+       based on storage size. To prevent log storage from growing too
+       large, always specify at least one log retention criterion. See
+       :ref:`mongosh-logs-retention`.
 
    * - ``redactHistory``
      - string
      - ``remove``
-     - Controls what information is recorded in the shell history.
-       Must be one of:
+     - Controls what information is recorded in the ``mongosh`` command history.
+       You can access the ``mongosh`` command history via the up and down keys 
+       or Ctrl+R while inside the shell.
+
+       Must be one of the following values:
 
        - ``keep``: Retain all history.
-       - ``remove``: Remove lines which contain sensitive information.
-       - ``remove-redact``: Redact sensitive information.
+       - ``remove``: Remove lines that contain sensitive commands from the history. 
+         For example, ``remove`` removes calls to db.auth() or connect().
+       - ``remove-redact``: Remove lines that contain sensitive commands and redact 
+         specific strings in other history lines, such as file paths, email addresses, and URLs. 
 
    * - ``showStackTraces``
      - boolean
diff --git a/source/includes/log-file-location.rst b/source/includes/log-file-location.rst
new file mode 100644
index 00000000..533405b3
--- /dev/null
+++ b/source/includes/log-file-location.rst
@@ -0,0 +1,16 @@
+Starting in |mdb-shell| 2.4.0, you can use the ``log.getPath()``
+command to view the current log file location. For example:
+
+.. code-block:: javascript
+
+   log.getPath()
+
+Example output:
+
+.. code-block:: javascript
+   :copyable: false
+
+   /Users/jane.doe/.mongodb/mongosh/c2961dbd6b73b052671d9df0_log
+
+The hexadecimal value in the path is the |mdb-shell| log identifier for
+the current session.
diff --git a/source/includes/log-retention-multiple-criteria.rst b/source/includes/log-retention-multiple-criteria.rst
new file mode 100644
index 00000000..33f34c42
--- /dev/null
+++ b/source/includes/log-retention-multiple-criteria.rst
@@ -0,0 +1,4 @@
+You can specify multiple criteria for log retention. For example, you
+can specify a maximum duration for log files of 60 days and a maximum
+log storage size of 2GB. Logs are deleted when any retention criterion
+is met, starting with the oldest logs.
diff --git a/source/includes/platform-limitations.rst b/source/includes/platform-limitations.rst
index 96dc457d..a2262fad 100644
--- a/source/includes/platform-limitations.rst
+++ b/source/includes/platform-limitations.rst
@@ -2,7 +2,3 @@
 - Red Hat Enterprise Linux (RHEL) 7, Amazon Linux 2, SUSE Linux
   Enterprise Server (SLES) 12, and Ubuntu 18.04 support is deprecated
   and might be removed in a later ``mongosh`` release.
-- If you must use ``Node.js`` 16 with ``mongosh``, install ``Node.js``
-  and then install ``mongosh`` through ``npm``. The ability to run
-  ``mongosh`` installed with ``npm`` and use ``Node.js`` 16 might be
-  removed during the lifetime of ``mongosh`` 2.x.
diff --git a/source/includes/specify-one-retention-criterion.rst b/source/includes/specify-one-retention-criterion.rst
new file mode 100644
index 00000000..ecb4fb3d
--- /dev/null
+++ b/source/includes/specify-one-retention-criterion.rst
@@ -0,0 +1,4 @@
+.. important::
+
+   To prevent log storage from growing too large, always specify at
+   least one log retention criterion.
diff --git a/source/includes/steps-install-shell-linux-deb.yaml b/source/includes/steps-install-shell-linux-deb.yaml
index 9b253e3c..660aee2c 100644
--- a/source/includes/steps-install-shell-linux-deb.yaml
+++ b/source/includes/steps-install-shell-linux-deb.yaml
@@ -47,6 +47,21 @@ content: |
    .. tabs::
 
       tabs:
+         - id: noble-numbat
+           name: Ubuntu 24.04 (Noble Numbat)
+           content: |
+
+              The following instruction is for **Ubuntu 24.04 (Noble Numbat)**.
+              For other Ubuntu releases, click the appropriate tab.
+
+              Create the
+              ``/etc/apt/sources.list.d/mongodb-org-{+mdb-version+}.list``
+              file for Ubuntu 24.04 (Noble Numbat):
+
+              .. code-block:: sh
+
+                 echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
+
          - id: jammy
            name: Ubuntu 22.04 (Jammy)
            content: |
diff --git a/source/includes/steps-install-shell-linux-rpm.yaml b/source/includes/steps-install-shell-linux-rpm.yaml
index 3ac5717c..35549527 100644
--- a/source/includes/steps-install-shell-linux-rpm.yaml
+++ b/source/includes/steps-install-shell-linux-rpm.yaml
@@ -50,17 +50,22 @@ content: |
 
                [mongodb-org-{+mdb-version+}]
                name=MongoDB Repository
-               baseurl=https://repo.mongodb.org/yum/amazon/$releasever/mongodb-org/{+mdb-version+}/$basearch/
+               baseurl=https://repo.mongodb.org/yum/amazon/2023/mongodb-org/{+mdb-version+}/$basearch/
                gpgcheck=1
                enabled=1
                gpgkey=https://www.mongodb.org/static/pgp/server-{+pgp-version+}.asc 
 
+            .. note::
+
+              If your system uses Amazon Linux 2, replace ``2023`` with
+              ``2`` in the baseurl. 
+
             You can also download the ``.rpm`` files directly from the
             `MongoDB repository
             <https://repo.mongodb.org/yum/amazon/>`__. Downloads are
             organized in the following order:
             
-            1. Amazon Linux version (for example, ``2``)
+            1. Amazon Linux version (for example, ``2023``)
 
             #. MongoDB :manual:`release version </reference/versioning>`
                (for example, ``{+mdb-version+}``)
diff --git a/source/includes/steps-install-shell-macos.yaml b/source/includes/steps-install-shell-macos.yaml
index 064b1058..925b6180 100644
--- a/source/includes/steps-install-shell-macos.yaml
+++ b/source/includes/steps-install-shell-macos.yaml
@@ -11,11 +11,7 @@ level: 4
 content: |
    Download the appropriate version of ``mongosh`` for your operating
    system. MongoDB provides versions of ``mongosh`` for Intel and ARM 
-   architectures. 
-   
-   See the `MongoDB Download Center
-   <https://www.mongodb.com/try/download/shell?jmp=docs>`__.
-
+   architectures.
 ---
 title: "Extract the files from the downloaded archive."
 ref: extract-zip-macos
diff --git a/source/includes/table-proxy-env-variables.rst b/source/includes/table-proxy-env-variables.rst
new file mode 100644
index 00000000..77460de0
--- /dev/null
+++ b/source/includes/table-proxy-env-variables.rst
@@ -0,0 +1,82 @@
+.. list-table::
+   :header-rows: 1
+   :widths: 20 35 45
+
+   * - Variable
+     - Description
+     - Example
+
+   * - ``MONGODB_PROXY``
+
+     - Proxy connections to ``mongodb://`` and ``mongodb+srv://`` URLs, such 
+       as database clusters.
+
+     - The following example sets the ``MONGODB_PROXY`` environment variable to
+       proxy all MongoDB connections through a CONNECT proxy located at 
+       ``example.com:8080`` with TLS enabled.
+
+       .. code-block:: sh 
+          :copyable: false 
+          
+          export MONGODB_PROXY=https://example.com:8080
+
+   * - ``HTTP_PROXY``
+
+     - Proxy connections to ``http://`` URLs. HTTP connections are mostly 
+       used for OIDC authentication. 
+     
+       If you also set ``HTTPS_PROXY``, the value of ``HTTPS_PROXY`` takes 
+       precedence for all requests.
+
+     - The following example sets the ``HTTP_PROXY`` environment variable to 
+       proxy HTTP connections through a CONNECT proxy located at 
+       ``example.com:8080``:
+
+       .. code-block:: sh 
+          :copyable: false 
+
+          export HTTP_PROXY=http://example.com:8080 
+
+   * - ``HTTPS_PROXY``
+
+     - Proxy connections to ``https://`` URLs. HTTPS connections are mostly 
+       used for OIDC authentication. 
+     
+       If you also set ``HTTP_PROXY``, the value of ``HTTPS_PROXY`` takes 
+       precedence for all requests.
+
+     - The following example sets the ``HTTPS_PROXY`` environment variable to 
+       proxy all HTTPS connections through a CONNECT proxy located at 
+       ``localhost:8080`` without TLS:
+
+       .. code-block:: sh 
+          :copyable: false 
+
+          export HTTPS_PROXY=http://localhost:8080
+       
+   * - ``ALL_PROXY``
+
+     - Proxy all connections to the specified URL.
+
+     - The following example sets the ``ALL_PROXY`` environment variable to 
+       proxy all outbound network connections through a Socks5 proxy located at 
+       ``example.com:1234`` with credentials included in the URL: 
+
+       .. code-block:: sh 
+          :copyable: false 
+
+          export ALL_PROXY=socks5://username:password@example.com:1234
+
+   * - ``NO_PROXY``
+
+     - Comma-separated list of hostnames that should be excluded from 
+       proxying.
+
+     - The following example sets the ``NO_PROXY`` environment variable to 
+       bypass the proxy for connections to ``localhost`` and 
+       ``internal-db.example.com``.
+
+       .. code-block:: sh 
+          :copyable: false 
+
+          export NO_PROXY=localhost,internal-db.example.com 
diff --git a/source/includes/verification-gpg-results.rst b/source/includes/verification-gpg-results.rst
new file mode 100644
index 00000000..30c4d246
--- /dev/null
+++ b/source/includes/verification-gpg-results.rst
@@ -0,0 +1,17 @@
+If the key imports successfully, the command returns:
+
+.. code-block:: sh
+    :copyable: false
+
+    gpg: key CEED0419D361CB16: public key "Mongosh Release Signing Key <packaging@mongodb.com>" imported
+    gpg: Total number processed: 1
+    gpg:               imported: 1
+
+If you have previously imported the key, the command returns:
+
+.. code-block:: sh
+    :copyable: false
+
+    gpg: key A8130EC3F9F5F923: "Mongosh Release Signing Key <packaging@mongodb.com>" not changed
+    gpg: Total number processed: 1
+    gpg:              unchanged: 1
diff --git a/source/includes/verify-signatures-before-you-begin.rst b/source/includes/verify-signatures-before-you-begin.rst
new file mode 100644
index 00000000..c912c243
--- /dev/null
+++ b/source/includes/verify-signatures-before-you-begin.rst
@@ -0,0 +1,3 @@
+If you don't have MongoDB Shell installed, download the MongoDB Shell
+binary from the `Download Center
+<https://www.mongodb.com/try/download/shell?jmp=docs>`__.
diff --git a/source/includes/verify-signatures-intro.rst b/source/includes/verify-signatures-intro.rst
new file mode 100644
index 00000000..bec92ba5
--- /dev/null
+++ b/source/includes/verify-signatures-intro.rst
@@ -0,0 +1,4 @@
+The MongoDB release team digitally signs MongoDB Shell packages to
+certify that packages are a valid and unaltered MongoDB release. Before
+you install MongoDB Shell, you can use the digital signature to validate
+the package.
diff --git a/source/index.txt b/source/index.txt
index 83e33edc..2816c851 100644
--- a/source/index.txt
+++ b/source/index.txt
@@ -31,7 +31,7 @@ Welcome to MongoDB Shell (``mongosh``)
       :uri: https://www.mongodb.com/try/download/shell?jmp=docs
 
 .. image:: /images/mongosh-plp/Technical_SOFTWARE_Terminal(3)_Spot.png
-   :alt: Abstract illustration showing a terminal interacting with different systems 
+   :alt: Abstract illustration showing a terminal interacting with different systems
 
 .. kicker:: What You Can Do
 
@@ -53,7 +53,7 @@ Access MongoDB From Your Shell
             Learn how to find your connection string for
             `Atlas <https://www.mongodb.com/docs/manual/reference/connection-string/#find-your-connection-string>`__.
 
-            Or connect to an 
+            Or connect to a
             `self-hosted <https://www.mongodb.com/docs/manual/reference/connection-string/#find-your-self-hosted-deployment-s-connection-string>`__
             deployment.
 
@@ -241,6 +241,7 @@ Other Powerful Features
       :cta: Unlock the Power of Editor Mode
       :url: https://www.mongodb.com/docs/mongodb-shell/reference/editor-mode/
       :icon: /images/mongosh-plp/icons/Technical_REALM_CLI10x.png
+      :icon-dark: /images/mongosh-plp/icons/Technical_REALM_CLI_inverse10x.png
       :icon-alt: CLI Icon
 
       Use an external or built-in editor to work with multiline
@@ -250,7 +251,7 @@ Other Powerful Features
    .. card::
       :cta: Access Session Logs
       :url: https://www.mongodb.com/docs/mongodb-shell/logs/
-      :icon: /images/mongosh-plp/icons/Technical_MDB_Shell10x.png
+      :icon: mdb_shell
       :icon-alt: MongoDB Shell Icon
 
       Access session logs for any session within the last 30 days. Find 
@@ -260,7 +261,7 @@ Other Powerful Features
    .. card::
       :cta: View Available Methods
       :url: https://www.mongodb.com/docs/mongodb-shell/reference/methods/
-      :icon: /images/mongosh-plp/icons/General_ACTION_Develop10x.png
+      :icon: general_action_develop
       :icon-alt: Terminal Icon in a circle
 
       Find out which methods ``mongosh`` supports. Get example
@@ -269,15 +270,15 @@ Other Powerful Features
 .. toctree::
    :titlesonly:
 
-   /install
-   /connect
-   /configure-mongosh
-   /run-commands
-   /crud
-   /run-agg-pipelines
-   /field-level-encryption
-   /write-scripts
-   /snippets
-   /reference
-   /changelog
-   /reference/access-mdb-shell-help.txt
+   Install </install>
+   Connect </connect>
+   Configure </configure-mongosh>
+   Run Commands </run-commands>
+   Perform CRUD Operations </crud>
+   Run Aggregation Pipelines </run-agg-pipelines>
+   Client-Side Field Level Encryption </field-level-encryption>
+   Write Scripts </write-scripts>
+   Snippets </snippets>
+   Reference </reference>
+   Release Notes </changelog>
+   Help </reference/access-mdb-shell-help.txt>
diff --git a/source/install.txt b/source/install.txt
index 0550e287..d7a11a2e 100644
--- a/source/install.txt
+++ b/source/install.txt
@@ -52,10 +52,14 @@ You can install MongoDB Shell 2.0.0 on these operating systems:
 
        | Amazon Linux 2023 (x64 and ARM64)
 
+       | Amazon Linux 2 (x64 and ARM64)
+
        | Debian 11+
 
        | SLES 15
 
+       | Oracle Linux 8+ running the Red Hat Compatible Kernel (RHCK). MongoDB Shell does **not** support the Unbreakable Enterprise Kernel (UEK).
+
 Compatibility Considerations
 ----------------------------
 
@@ -142,8 +146,8 @@ Select the appropriate tab for your operating system:
         ``.deb`` tab.
 
       - To install the ``.rpm`` package on
-        :abbr:`RHEL (Red Hat Enterprise Linux)` or Amazon Linux 2,
-        click the ``.rpm`` tab.
+        :abbr:`RHEL (Red Hat Enterprise Linux)`, Amazon Linux 2023, or Amazon 
+        Linux 2, click the ``.rpm`` tab.
 
       - To install the ``.tgz`` tarball, click the ``.tgz`` tab.
 
@@ -158,6 +162,7 @@ Select the appropriate tab for your operating system:
             :binary:`mongosh` is available as a :abbr:`PPA (Personal
             Package Archive)` for the following platforms:
             
+            - Ubuntu 24.04 (Noble Numbat)
             - Ubuntu 22.04 (Jammy)
             - Ubuntu 20.04 (Focal)
             - Ubuntu 18.04 (Bionic)
@@ -177,13 +182,9 @@ Select the appropriate tab for your operating system:
             following platforms:
 
             - :abbr:`RHEL (Red Hat Enterprise Linux)`
+            - Amazon Linux 2023
             - Amazon Linux 2
 
-            .. important:: Amazon Linux 2023 Availability
-
-               ``mongosh`` is **not** currently available on Amazon
-               Linux 2023.
-
             Procedure
             ~~~~~~~~~
 
@@ -206,3 +207,8 @@ Once you successfully install :binary:`mongosh`, learn how to
 MongoDB provides a programmatically accessible list of ``mongosh``
 `downloads <https://downloads.mongodb.com/compass/mongosh.json>`__ that
 can be accessed through your application.
+
+.. toctree::
+   :titlesonly:
+
+   Verify Package Integrity </install/verify-signatures>
diff --git a/source/install/verify-signatures.txt b/source/install/verify-signatures.txt
new file mode 100644
index 00000000..2506208d
--- /dev/null
+++ b/source/install/verify-signatures.txt
@@ -0,0 +1,39 @@
+.. _verify-signatures-mongosh:
+
+==========================================
+Verify Integrity of MongoDB Shell Packages
+==========================================
+
+.. meta::
+   :description: Verify the integrity of MongoDB Shell packages using digital signatures before installation.
+
+.. contents:: On this page
+   :local:
+   :backlinks: none
+   :depth: 1
+   :class: singlecol
+
+.. facet::
+   :name: genre
+   :values: tutorial
+
+.. include:: /includes/verify-signatures-intro.rst
+
+To learn how to verify MongoDB Shell packages, see the corresponding
+page for your verification method:
+
+- :ref:`mongosh-verify-signatures-disk-image`
+
+- :ref:`mongosh-verify-signatures-gpg`
+
+- :ref:`mongosh-verify-signatures-rpm`
+
+- :ref:`mongosh-verify-signatures-windows`
+
+.. toctree::
+   :titlesonly:
+
+   Use Disk Imge Verification (macOS) </install/verify-signatures/disk-images>
+   Use GPG (Linux & macoS) </install/verify-signatures/gpg>
+   Verify RPM Packages (RHEL) </install/verify-signatures/rpm>
+   Verify Windows Packages </install/verify-signatures/windows>
diff --git a/source/install/verify-signatures/disk-images.txt b/source/install/verify-signatures/disk-images.txt
new file mode 100644
index 00000000..3fbf36c9
--- /dev/null
+++ b/source/install/verify-signatures/disk-images.txt
@@ -0,0 +1,46 @@
+.. _mongosh-verify-signatures-disk-image:
+
+====================================================
+Verify Packages with Disk Image Verification (macOS)
+====================================================
+
+.. meta::
+   :description: Verify MongoDB Shell packages on macOS using digital signatures to ensure authenticity and integrity before installation.
+
+.. contents:: On this page
+   :local:
+   :backlinks: none
+   :depth: 1
+   :class: singlecol
+
+.. facet::
+   :name: genre
+   :values: tutorial
+
+.. include:: /includes/verify-signatures-intro.rst
+
+This page describes how to verify ``.dmg`` packages on macOS.
+
+Before you Begin
+----------------
+
+.. include:: /includes/verify-signatures-before-you-begin.rst
+
+Steps
+-----
+
+To verify the MongoDB Shell package, run:
+
+.. code-block:: sh
+
+   codesign -dv --verbose=4 <path_to_mongosh_executable>
+
+If the package is signed by MongoDB, the output includes the following
+information:
+
+.. code-block:: sh
+   :copyable: false
+
+   Authority=Developer ID Application: MongoDB, Inc. (4XWMY46275)
+   Authority=Developer ID Certification Authority
+   Authority=Apple Root CA
diff --git a/source/install/verify-signatures/gpg.txt b/source/install/verify-signatures/gpg.txt
new file mode 100644
index 00000000..d3c76f9b
--- /dev/null
+++ b/source/install/verify-signatures/gpg.txt
@@ -0,0 +1,91 @@
+.. _mongosh-verify-signatures-gpg:
+
+==========================================
+Verify Packages with GPG (Linux and macOS)
+==========================================
+
+.. meta::
+   :description: Verify MongoDB Shell packages on Linux and macOS using GPG to ensure they are valid and unaltered releases.
+
+.. contents:: On this page
+   :local:
+   :backlinks: none
+   :depth: 1
+   :class: singlecol
+
+.. facet::
+   :name: genre
+   :values: tutorial
+
+.. include:: /includes/verify-signatures-intro.rst
+
+This page describes how to use GPG to verify Linux and macOS packages.
+
+Before you Begin
+----------------
+
+.. include:: /includes/verify-signatures-before-you-begin.rst
+
+Steps
+-----
+
+.. procedure::
+   :style: normal
+
+   .. step:: Import the MongoDB Shell public key
+
+      .. code-block:: sh
+
+         curl https://pgp.mongodb.com/mongosh.asc | gpg --import
+
+      .. include:: /includes/verification-gpg-results.rst
+
+   .. step:: Download the MongoDB Shell public signature
+
+      To download the MongoDB Shell public signature, go to the `mongosh
+      Releases <https://github.com/mongodb-js/mongosh/releases>`__ page
+      on GitHub and download the corresponding ``.sig`` file for your
+      version and variant.
+
+      For example, if you are running
+      ``mongodb-mongosh_{+version+}_amd64.deb``, download
+      ``mongodb-mongosh_{+version+}_amd64.deb.sig``
+
+      .. note:: 
+         
+         Make sure that you select the correct version in the GitHub
+         releases page when you download the signature.
+
+   .. step:: Verify the package
+
+      .. code-block:: sh
+
+         gpg --verify <path_to_signature_file> <path_to_mongosh_executable>
+
+      If the package is signed by MongoDB, the command returns:
+      
+      .. code-block:: sh
+         :copyable: false
+
+         gpg: Signature made Mon Jan 22 10:22:53 2024 CET
+         gpg:                using RSA key AB1B92FFBE0D3740425DAD16A8130EC3F9F5F923
+         gpg: Good signature from "Mongosh Release Signing Key <packaging@mongodb.com>" [unknown]
+         
+      If the package is signed but the signing key is not added to your
+      local ``trustdb``, the command returns:
+
+      .. code-block:: sh
+         :copyable: false
+
+         gpg: WARNING: This key is not certified with a trusted signature!
+         gpg:          There is no indication that the signature belongs to the owner.
+         
+      If the package is not properly signed, the command returns an
+      error message:
+
+      .. code-block:: sh
+         :copyable: false
+
+         gpg: Signature made Mon Jan 22 10:22:53 2024 CET
+         gpg:                using RSA key AB1B92FFBE0D3740425DAD16A8130EC3F9F5F923
+         gpg: BAD signature from "Mongosh Release Signing Key <packaging@mongodb.com>" [unknown]
diff --git a/source/install/verify-signatures/rpm.txt b/source/install/verify-signatures/rpm.txt
new file mode 100644
index 00000000..286b91be
--- /dev/null
+++ b/source/install/verify-signatures/rpm.txt
@@ -0,0 +1,57 @@
+.. _mongosh-verify-signatures-rpm:
+
+==========================
+Verify RPM Packages (RHEL)
+==========================
+
+.. meta::
+   :description: Verify the digital signatures of MongoDB Shell RPM packages on RHEL to ensure they are valid and unaltered before installation.
+
+.. contents:: On this page
+   :local:
+   :backlinks: none
+   :depth: 1
+   :class: singlecol
+
+.. facet::
+   :name: genre
+   :values: tutorial
+
+.. include:: /includes/verify-signatures-intro.rst
+
+This page describes how to verify ``.rpm`` packages on RHEL operating
+systems.
+
+Before you Begin
+----------------
+
+.. include:: /includes/verify-signatures-before-you-begin.rst
+
+Steps
+-----
+
+.. procedure::
+   :style: normal
+
+   .. step:: Import the MongoDB Shell public key in gpg and rpm
+
+      .. code-block:: sh
+
+         curl https://pgp.mongodb.com/mongosh.asc | gpg --import
+         
+         rpm --import https://pgp.mongodb.com/mongosh.asc
+
+      .. include:: /includes/verification-gpg-results.rst
+
+   .. step:: Verify the rpm file
+
+      .. code-block:: sh
+
+         rpm --checksig <path_to_mongosh_rpm_file>
+
+      If the file is signed, the command returns:
+
+      .. code-block:: sh
+         :copyable: false
+
+         <path_to_mongosh_rpm_file> digests signatures OK
diff --git a/source/install/verify-signatures/windows.txt b/source/install/verify-signatures/windows.txt
new file mode 100644
index 00000000..ed48ff40
--- /dev/null
+++ b/source/install/verify-signatures/windows.txt
@@ -0,0 +1,86 @@
+.. _mongosh-verify-signatures-windows:
+
+=======================
+Verify Windows Packages
+=======================
+
+.. meta::
+   :description: Verify the authenticity of MongoDB Shell packages on Windows using PowerShell or by checking digital signatures in the properties.
+
+.. contents:: On this page
+   :local:
+   :backlinks: none
+   :depth: 2
+   :class: singlecol
+
+.. facet::
+   :name: genre
+   :values: tutorial
+
+.. include:: /includes/verify-signatures-intro.rst
+
+This page describes how to verify Windows ``.exe`` and ``.msi``
+packages.
+
+Before you Begin
+----------------
+
+.. include:: /includes/verify-signatures-before-you-begin.rst
+
+Steps
+-----
+
+To verify the MongoDB Shell package on Windows, you can use one of these
+methods:
+
+- :ref:`mongosh-verify-signatures-windows-command-line`
+
+- :ref:`mongosh-verify-signatures-windows-check-properties`
+
+.. _mongosh-verify-signatures-windows-command-line:
+
+Verify Packages with PowerShell
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To verify Windows packages with PowerShell, run:
+
+.. code-block:: sh
+
+   powershell Get-AuthenticodeSignature -FilePath <path_to_mongosh_exe_or_msi>
+   
+If the package is signed, the command returns:
+
+.. code-block:: sh
+   :copyable: false
+
+   SignerCertificate     Status     Path                               
+   -----------------     ------     ----
+   F2D7C28591847B...     Valid      <path_to_mongosh_exe_or_msi>
+
+.. _mongosh-verify-signatures-windows-check-properties:
+
+Verify Packages by Checking Properties
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. procedure::
+   :style: normal
+
+   .. step:: Open the properties for your MongoDB Shell package
+
+   .. step:: Check the package's digital signatures
+
+      In the properties window, open the :guilabel:`Digital Signatures`
+      tab.
+
+      If the package is properly signed, the Digital Signatures show
+      these properties:
+
+      .. list-table::
+         :header-rows: 1
+      
+         * - Name of signer
+           - Digest algorithm
+           - Timestamp
+         * - MONGODB, INC.
+           - sha256
+           - <Timestamp>
diff --git a/source/logs.txt b/source/logs.txt
index fb272eca..b5a19b0a 100644
--- a/source/logs.txt
+++ b/source/logs.txt
@@ -1,10 +1,11 @@
 .. _mdb-shell-logs:
 
-===================
-Retrieve Shell Logs
-===================
+==========
+Shell Logs
+==========
 
-.. default-domain:: mongodb
+.. meta::
+   :description: Access and manage MongoDB Shell session logs, including viewing, customizing, and setting retention policies.
 
 .. contents:: On this page
    :local:
@@ -12,50 +13,57 @@ Retrieve Shell Logs
    :depth: 1
    :class: singlecol
 
-|mdb-shell| uses `ndjson <http://ndjson.org/>`__ to store session logs.
-Starting in :binary:`mongosh` version 1.0.5, the log |mdb-shell|
-format is updated to match the MongoDB server log format. For details,
-see :ref:`log-messages-ref`. 
+The |mdb-shell| stores a log for each session. The log contains a record
+of commands run, server connections, and other useful information about
+actions performed in the |mdb-shell|.
 
-You can view or tail the logs for a |mdb-shell| session based on its
-log ID.
+Get Started
+-----------
 
-.. include:: /includes/admonitions/note-redact-credentials-command-history.rst
-
-.. _mdb-shell-view-logs:
+You can view or tail the logs for a |mdb-shell| session based on its log
+ID.
 
-View |mdb-shell| Logs
----------------------
+To learn how to view and customize |mdb-shell| logs, see these pages:
 
-.. include:: /includes/steps/view-logs.rst
+- :ref:`mdb-shell-view-logs`
+- :ref:`mdb-shell-command-history`
+- :ref:`mongosh-log-location`
+- :ref:`mongosh-custom-log-entries`
+- :ref:`mongosh-log-compression`
+- :ref:`mongosh-logs-disable`
 
-.. _mdb-shell-command-history:
+Details
+-------
 
-View |mdb-shell| Command History
---------------------------------
+See the following details about |mdb-shell| logging behavior:
 
-|mdb-shell| saves a history of all commands you've run across sessions.
-When a new command is issued, it is added to the beginning of the
-history file.
+Format
+~~~~~~
 
-Open the following file in a text editor to view the |mdb-shell| command
-history:
+The |mdb-shell| uses `Newline delimited JSON
+<https://github.com/ndjson/ndjson-spec>`__ to store session logs, which
+is the same log format used for :ref:`MongoDB server logs
+<log-messages-ref>`.
 
-.. list-table::
-   :header-rows: 1
-   :widths: 1 2
+Redaction
+~~~~~~~~~
 
-   * - Operating System
-     - Path to History File
+.. include:: /includes/admonitions/note-redact-credentials-command-history.rst
 
-   * - macOS and Linux
-     - ``~/.mongodb/mongosh/mongosh_repl_history``
+Retention
+~~~~~~~~~
 
-   * - Windows
-     - ``%UserProfile%/.mongodb/mongosh/mongosh_repl_history``
+By default, the |mdb-shell| retains up to 100 log files, and individual
+log files are retained for 30 days. To customize log file retention, see
+:ref:`mongosh-logs-retention`.
 
-Log Retention
--------------
+.. toctree::
+   :titlesonly:
 
-``mongosh`` retains log files for 30 days. Log files older than
-30 days are automatically deleted.
+   View Logs </logs/view>
+   View Command History </logs/command-history>
+   Specify Log Location </logs/location> 
+   Write Custom Log Entries </logs/custom-entries>
+   Retention </logs/retention>
+   Enable Log Compression </logs/compression>
+   Disable Logging </logs/disable>
diff --git a/source/logs/command-history.txt b/source/logs/command-history.txt
new file mode 100644
index 00000000..98f6a376
--- /dev/null
+++ b/source/logs/command-history.txt
@@ -0,0 +1,71 @@
+.. _mdb-shell-command-history:
+
+==========================
+View Shell Command History
+==========================
+
+.. contents:: On this page
+   :local:
+   :backlinks: none
+   :depth: 1
+   :class: singlecol
+
+The |mdb-shell| saves a history of all commands you've run across
+sessions. When a new command is issued, it is added to the beginning of
+the history file.
+
+Steps
+-----
+
+To view the |mdb-shell| command history, open the following file in a
+text editor:
+
+.. list-table::
+   :header-rows: 1
+   :widths: 1 2
+
+   * - Operating System
+     - Path to History File
+
+   * - macOS and Linux
+     - ``~/.mongodb/mongosh/mongosh_repl_history``
+
+   * - Windows
+     - ``%UserProfile%/.mongodb/mongosh/mongosh_repl_history``
+
+Starting in |mdb-shell| 2.4.0, you can use the ``history()`` command to
+view a list of previously executed commands. For example:
+
+.. code-block:: javascript
+
+   history()
+
+The following example output shows a list of commands in an array of
+strings:
+
+.. code-block:: javascript
+   :copyable: false
+
+   [
+     'db.pizzaOrders.explain()',
+     'db.pizzaOrders.find()',
+     'db.pizzaOrders.explain.find()',
+     'db.pizzaOrders.explain.find( {} )',
+     'db.pizzaOrders.explain().find( {} )',
+     'db.pizzaOrders.explain().find( orderDate, totalNumber )',
+     'db.pizzaOrders.explain().find( orderDate: Date( "2024-03-20T10:01:12Z" ), totalNumber: 20 )',
+     'db.pizzaOrders.explain().find( totalNumber: 20 )',
+     'db.pizzaOrders.explain().find( { orderDate: Date( "2024-03-20T10:01:12Z" ) }, { totalNumber: 20 } )',
+     'db.pizzaOrders.find( { orderDate: Date( "2024-03-20T10:01:12Z" ) }, { totalNumber: 20 } )',
+     ...
+   ]
+
+The history is returned in chronological order.
+
+``history()`` supports JavaScript array methods. You can use ``slice()``
+to return a section of an array. For example, to view the last 10
+commands, run:
+
+.. code-block:: javascript
+
+   history().slice(-10)
diff --git a/source/logs/compression.txt b/source/logs/compression.txt
new file mode 100644
index 00000000..ef3392a1
--- /dev/null
+++ b/source/logs/compression.txt
@@ -0,0 +1,76 @@
+.. _mongosh-log-compression:
+
+======================
+Enable Log Compression
+======================
+
+.. contents:: On this page
+   :local:
+   :backlinks: none
+   :depth: 1
+   :class: singlecol
+
+You can enable compression for |mdb-shell| log files. By default,
+|mdb-shell| does not compress log files.
+
+About this Task
+---------------
+
+When log compression is enabled, |mdb-shell| compresses log files with
+gzip.
+
+After you toggle log compression, you must start a new |mdb-shell|
+session for the change to take effect.
+
+Before you Begin
+----------------
+
+To check if log compression is enabled, run the following command from
+|mdb-shell|:
+
+.. code-block:: javascript
+
+   config.get("logCompressionEnabled")
+
+Steps
+-----
+
+To enable log compression, set the ``logCompressionEnabled``
+configuration option to ``true``. You can set configuration options in
+the :ref:`configuration API <configure-settings-api>` or a
+:ref:`configuration file <configure-settings-global>`.
+
+Enable Log Compression with the Configuration API
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The following command uses the config API to enable log compression:
+
+.. io-code-block::
+   :copyable: true
+
+   .. input::
+      :language: javascript
+
+      config.set("logCompressionEnabled", true)
+
+   .. output::
+      :language: javascript
+
+      Setting "logCompressionEnabled" has been changed
+
+Enable Log Compression with a Configuration File
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The following configuration file enables log compression:
+
+.. code-block:: yaml
+
+   mongosh:
+     logCompressionEnabled: true
+
+Disable Log Compression
+~~~~~~~~~~~~~~~~~~~~~~~
+
+To disable log compression, set ``logCompressionEnabled`` to ``false``.
+You can perform this action through the config API or configuration
+file.
diff --git a/source/logs/custom-entries.txt b/source/logs/custom-entries.txt
new file mode 100644
index 00000000..171fc81f
--- /dev/null
+++ b/source/logs/custom-entries.txt
@@ -0,0 +1,133 @@
+.. _mongosh-custom-log-entries:
+
+========================
+Write Custom Log Entries
+========================
+
+.. contents:: On this page
+   :local:
+   :backlinks: none
+   :depth: 1
+   :class: singlecol
+
+You can write custom :ref:`log entries <mdb-shell-logs>` from your
+:ref:`MongoDB Shell scripts <mdb-shell-write-scripts>`. Custom log
+entries help with debugging, error handling, and alert you when the
+script performs specific functions.
+
+About this Task
+---------------
+
+MongoDB Shell supports the following methods for custom log entries:
+
+- ``log.debug()``
+- ``log.error()``
+- ``log.fatal()``
+- ``log.info()``
+- ``log.warn()``
+
+Steps
+-----
+
+.. procedure::
+
+   .. step:: Create a script that writes a custom log entry
+
+      The following script inserts documents into the ``movies``
+      collection and writes a custom ``info`` log entry. If the script
+      errors, it writes a custom ``error`` log entry instead.
+
+      .. code-block:: javascript
+         :emphasize-lines: 22,24
+         
+         // connect-and-insert-with-log-entry.js
+                  
+         try {
+            db = connect( 'mongodb://localhost/myDatabase' );
+
+            db.movies.insertMany( [
+               {
+                  title: 'Titanic',
+                  year: 1997,
+                  genres: [ 'Drama', 'Romance' ]
+               },
+               {
+                  title: 'Spirited Away', 
+                  year: 2001,
+                  genres: [ 'Animation', 'Adventure', 'Family' ]
+               },
+               {
+                  title: 'Casablanca',
+                  genres: [ 'Drama', 'Romance', 'War' ]
+               }
+            ] )
+            log.info('InsertData: Inserted 3 movies');
+         } catch (error) {
+            log.error('Insert failed', { error: error.message });
+         }
+
+      Save the script as ``connect-and-insert-with-log-entry.js``.
+
+   .. step:: Run the script
+
+      To run the ``connect-and-insert-with-log-entry.js`` script, use
+      ``mongosh`` to connect to your deployment and run the following
+      command within MongoDB Shell:
+
+      .. code-block:: javascript
+
+         load("connect-and-insert-with-log-entry.js")
+
+      Alternatively, you can run the script programmatically by using
+      the :option:`--file <mongosh --file>` option when you start
+      ``mongosh``:
+      
+      .. code-block:: sh
+
+         mongosh --file connect-and-insert-with-log-entry.js
+
+Results
+-------
+
+The custom log entry appears in the logs for your session:
+
+.. code-block:: javascript
+   :copyable: false
+
+   {"t":{"$date":"2025-02-25T18:04:01.690Z"},"s":"I","c":"MONGOSH-SCRIPTS","id":1000000054,"ctx":"custom-log","msg":"InsertData: Inserted 3 movies"}
+   
+For more information about log sessions and how to retrieve log
+messages, see :ref:`mdb-shell-view-logs`.
+
+To verify that the script inserted the documents, query the ``movies``
+collection:
+
+.. code-block:: javascript
+
+   use myDatabase
+   db.movies.find()
+
+Output:
+
+.. code-block:: javascript
+   :copyable: false
+
+   [
+      {
+         _id: ObjectId('67bde8c2a527c6b1341979f2'),
+         title: 'Titanic',
+         year: 1997,
+         genres: [ 'Drama', 'Romance' ]
+      },
+      {
+         _id: ObjectId('67bde8c2a527c6b1341979f3'),
+         title: 'Spirited Away',
+         year: 2001,
+         genres: [ 'Animation', 'Adventure', 'Family' ]
+      },
+      {
+         _id: ObjectId('67bde8c2a527c6b1341979f4'),
+         title: 'Casablanca',
+         genres: [ 'Drama', 'Romance', 'War' ]
+      }
+   ]
diff --git a/source/logs/disable.txt b/source/logs/disable.txt
new file mode 100644
index 00000000..46de0509
--- /dev/null
+++ b/source/logs/disable.txt
@@ -0,0 +1,75 @@
+.. _mongosh-logs-disable:
+
+===============
+Disable Logging
+===============
+
+.. contents:: On this page
+   :local:
+   :backlinks: none
+   :depth: 1
+   :class: singlecol
+
+To specify whether |mdb-shell| writes log messages, use the
+``disableLogging`` configuration option. Logging is enabled by default.
+
+About this Task
+---------------
+
+When you toggle logging, the change affects the current |mdb-shell|
+session. You don't need to start a new session for the change to take
+effect.
+
+Before you Begin
+----------------
+
+To check if logging is currently disabled, run the following command:
+
+.. code-block:: javascript
+
+   config.get("disableLogging")
+
+- If the command returns ``true``, logging is disabled.
+- If the command returns ``false``, logging is enabled.
+
+Steps
+-----
+
+You can set the ``disableLogging`` configuration option with the
+:ref:`configuration API <configure-settings-api>` or a
+:ref:`configuration file <configure-settings-global>`.
+
+Disable Logging with the Configuration API
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The following command uses the config API to disable logging for
+|mdb-shell|:
+
+.. io-code-block::
+   :copyable: true
+
+   .. input::
+      :language: javascript
+
+      config.set("disableLogging", true)
+
+   .. output::
+      :language: javascript
+
+      Setting "disableLogging" has been changed
+
+Disable Logging with a Configuration File
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The following configuration file disables logging for |mdb-shell|:
+
+.. code-block:: yaml
+
+   mongosh:
+     disableLogging: true
+
+Re-Enable Logging
+~~~~~~~~~~~~~~~~~
+
+To enable logging, set ``disableLogging`` to ``false``. You can perform
+this action through the config API or configuration file.
diff --git a/source/logs/location.txt b/source/logs/location.txt
new file mode 100644
index 00000000..9fc6d483
--- /dev/null
+++ b/source/logs/location.txt
@@ -0,0 +1,97 @@
+.. _mongosh-log-location:
+
+=========================
+Specify Log File Location
+=========================
+
+.. contents:: On this page
+   :local:
+   :backlinks: none
+   :depth: 1
+   :class: singlecol
+
+You can specify where MongoDB Shell writes log files. By default,
+MongoDB Shell saves the log for each session to your user's
+``.mongodb/mongosh`` directory, which depends on your operating system:
+
+.. list-table::
+   :header-rows: 1
+
+   * - Operating System
+     - Default Log Location
+   * - macOS and Linux
+     - ``~/.mongodb/mongosh/<LogID>_log``
+   * - Windows
+     - ``%UserProfile%/AppData/Local/mongodb/mongosh/<LogID>_log``
+
+About this Task
+---------------
+
+To view the current log file location, use the :ref:`config API
+<configure-settings-api>` to return the ``logLocation`` value:
+
+.. code-block:: javascript
+
+   config.get("logLocation")
+
+After you modify your log file location, you must start a new
+|mdb-shell| session for the change to take effect.
+
+Log File Location
+~~~~~~~~~~~~~~~~~
+
+.. include:: /includes/log-file-location.rst
+
+Log File Names
+~~~~~~~~~~~~~~
+
+If you modify the default log file location, log files have a
+``mongosh_`` prefix before the session ID. For example, the log for
+session ID ``67be0c0eb6227e211a1979e8`` is saved as
+``mongosh_67be0c0eb6227e211a1979e8_log``.
+
+If you use the default log file location, the file name does not include
+the ``mongosh_`` prefix. For example, the log for session ID
+``67be0c0eb6227e211a1979e8`` is saved as
+``67be0c0eb6227e211a1979e8_log``.
+
+Steps
+-----
+
+To change the log file location, modify the ``logLocation``
+configuration option. You can modify configuration options with the
+configuration API or a configuration file.
+
+.. important::
+
+   Specify ``logLocation`` as an absolute filepath.
+
+Modify Log Location with the API
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The following command uses the config API to set the ``logLocation``
+setting to ``/path/to/log/directory``:
+
+.. io-code-block::
+   :copyable: true
+
+   .. input::
+      :language: javascript
+
+      config.set("logLocation", "/path/to/log/directory")
+
+   .. output::
+      :language: javascript
+
+      Setting "logLocation" has been changed
+
+Modify Log Location with a Configuration File
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The following :ref:`configuration file <configure-settings-global>` sets
+the ``logLocation`` setting to ``/path/to/log/directory``:
+
+.. code-block:: yaml
+
+   mongosh:
+     logLocation: "/path/to/log/directory"
diff --git a/source/logs/retention.txt b/source/logs/retention.txt
new file mode 100644
index 00000000..942592b9
--- /dev/null
+++ b/source/logs/retention.txt
@@ -0,0 +1,36 @@
+.. _mongosh-logs-retention:
+
+=============
+Log Retention
+=============
+
+.. contents:: On this page
+   :local:
+   :backlinks: none
+   :depth: 1
+   :class: singlecol
+
+You can customize how |mdb-shell| logs are retained. By default, the
+system retains 100 log files for 30 days. You can choose to retain logs
+based on a combination of time, storage size, and number of log files.
+
+Get Started
+-----------
+
+To customize log retention, see these pages:
+
+- :ref:`mongosh-log-file-duration`
+- :ref:`mongosh-log-retention-gb`
+- :ref:`mongosh-log-file-count`
+
+Details
+-------
+
+.. include:: /includes/log-retention-multiple-criteria.rst
+
+.. toctree::
+   :titlesonly:
+
+   Duration </logs/retention/duration>
+   Storage Size </logs/retention/size>
+   File Count </logs/retention/file-count>
diff --git a/source/logs/retention/duration.txt b/source/logs/retention/duration.txt
new file mode 100644
index 00000000..76679f5a
--- /dev/null
+++ b/source/logs/retention/duration.txt
@@ -0,0 +1,79 @@
+.. _mongosh-log-file-duration:
+
+=============================
+Modify Log Retention Duration
+=============================
+
+.. contents:: On this page
+   :local:
+   :backlinks: none
+   :depth: 1
+   :class: singlecol
+
+You can modify how long |mdb-shell| log files are retained. A log
+cleanup process automatically deletes log files older than the specified
+retention period. By default, log files are retained for 30 days.
+
+About this Task
+---------------
+
+.. include:: /includes/log-retention-multiple-criteria.rst
+
+Before you Begin
+----------------
+
+To check the current log retention duration, run the following command:
+
+.. code-block:: javascript
+
+   config.get("logRetentionDays")
+
+Steps
+-----
+
+To modify how long log files are retained, set the ``logRetentionDays``
+configuration option. You can set configuration options in the
+configuration API or a configuration file.
+
+Modify Log Duration with the Configuration API
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The following command uses the config API to set log retention to 60
+days:
+
+.. io-code-block::
+   :copyable: true
+
+   .. input::
+      :language: javascript
+
+      config.set("logRetentionDays", 60)
+
+   .. output::
+      :language: javascript
+
+      Setting "logRetentionDays" has been changed
+
+Modify Log Duration with a Configuration File
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The following configuration file sets log retention to 60
+days:
+
+.. code-block:: yaml
+
+   mongosh:
+     logRetentionDays: 60
+
+Disable Duration-Based Log Cleanup
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To instruct |mdb-shell| to not delete logs based on file age, set
+``logRetentionDays`` to ``Infinity``. You can perform this action
+through the config API or configuration file. For example:
+
+.. code-block:: javascript
+
+    config.set("logRetentionDays", Infinity)
+
+.. include:: /includes/specify-one-retention-criterion.rst
diff --git a/source/logs/retention/file-count.txt b/source/logs/retention/file-count.txt
new file mode 100644
index 00000000..08b4aa3e
--- /dev/null
+++ b/source/logs/retention/file-count.txt
@@ -0,0 +1,83 @@
+.. _mongosh-log-file-count:
+
+=============================
+Modify Maximum Log File Count
+=============================
+
+.. contents:: On this page
+   :local:
+   :backlinks: none
+   :depth: 1
+   :class: singlecol
+
+You can specify the maximum number of log files that the |mdb-shell|
+retains. After the |mdb-shell| reaches the maximum log file count, it
+starts deleting the oldest log files until the count is below the
+threshold.
+
+The |mdb-shell| stores one log file for each session. By default, the
+|mdb-shell| stores up to 100 log files.
+
+About this Task
+---------------
+
+.. include:: /includes/log-retention-multiple-criteria.rst
+
+Before you Begin
+----------------
+
+To check the current maximum log file count, run the following command:
+
+.. code-block:: javascript
+
+   config.get("logMaxFileCount")
+
+Steps
+-----
+
+To modify the maximum log file count, set the ``logMaxFileCount``
+configuration option. You can set configuration options in the
+:ref:`configuration API <configure-settings-api>` or a
+:ref:`configuration file <configure-settings-global>`.
+
+Modify Maximum Log File Count with the Configuration API
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The following command uses the config API to set the maximum log file
+count to 200:
+
+.. io-code-block::
+   :copyable: true
+
+   .. input::
+      :language: javascript
+
+      config.set("logMaxFileCount", 200)
+
+   .. output::
+      :language: javascript
+
+      Setting "logMaxFileCount" has been changed
+
+Modify Maximum Log File Count with a Configuration File
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The following configuration file sets the maximum log file count to 200:
+
+.. code-block:: yaml
+
+   mongosh:
+     logMaxFileCount: 200
+
+Disable Maximum Log File Limit
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To disable the maximum log file limit, set ``logMaxFileCount`` to
+``Infinity``. You can perform this action through the config API or
+configuration file. For example:
+
+.. code-block:: javascript
+
+   config.set("logMaxFileCount", Infinity)
+
+.. include:: /includes/specify-one-retention-criterion.rst
diff --git a/source/logs/retention/size.txt b/source/logs/retention/size.txt
new file mode 100644
index 00000000..b46185ef
--- /dev/null
+++ b/source/logs/retention/size.txt
@@ -0,0 +1,95 @@
+.. _mongosh-log-retention-gb:
+
+===============================
+Modify Maximum Log Storage Size
+===============================
+
+.. contents:: On this page
+   :local:
+   :backlinks: none
+   :depth: 1
+   :class: singlecol
+
+You can specify a maximum combined storage size for |mdb-shell| log
+files. If the total size of all log files exceeds the maximum, log files
+are deleted until the combined size is below the threshold, starting
+with the oldest log files. By default, there is no maximum log storage
+size.
+
+About this Task
+---------------
+
+To specify a maximum log storage size, set the ``logRetentionGB``
+configuration option. ``logRetentionGB`` can be any positive float
+value (including less than ``1``).
+
+.. include:: /includes/log-retention-multiple-criteria.rst
+
+To check the current storage size of log files, check the size of the
+log folder. To see the current log folder, run the following command
+from the |mdb-shell|:
+
+.. code-block:: javascript
+
+   config.get('logLocation')
+
+Before you Begin
+----------------
+
+To check the current maximum log storage size, run the following
+command:
+
+.. code-block:: javascript
+
+   config.get("logRetentionGB")
+
+Steps
+-----
+
+To modify maximum log storage size, set the ``logRetentionGB``
+configuration option. You can set configuration options in the
+:ref:`configuration API <configure-settings-api>` or a
+:ref:`configuration file <configure-settings-global>`.
+
+Modify Maximum Log Storage Size with the API
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The following command uses the config API to set the maximum log storage
+size to 3.5 GB:
+
+.. io-code-block::
+   :copyable: true
+
+   .. input::
+      :language: javascript
+
+      config.set("logRetentionGB", 3.5)
+
+   .. output::
+      :language: javascript
+
+      Setting "logRetentionGB" has been changed
+
+Modify Maximum Log Storage Size with a Configuration File
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The following configuration file sets the maximum log storage size to
+3.5 GB:
+
+.. code-block:: yaml
+
+   mongosh:
+     logRetentionGB: 3.5
+
+Disable Maximum Log Storage Size
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+To instruct the |mdb-shell| to not delete logs based on storage size,
+set ``logRetentionGB`` to ``Infinity``. You can perform this action
+through the config API or configuration file. For example:
+
+.. code-block:: javascript
+
+    config.set("logRetentionGB", Infinity)
+
+.. include:: /includes/specify-one-retention-criterion.rst
diff --git a/source/logs/view.txt b/source/logs/view.txt
new file mode 100644
index 00000000..cb843088
--- /dev/null
+++ b/source/logs/view.txt
@@ -0,0 +1,23 @@
+.. _mdb-shell-view-logs:
+
+===============
+View Shell Logs
+===============
+
+.. contents:: On this page
+   :local:
+   :backlinks: none
+   :depth: 1
+   :class: singlecol
+
+The |mdb-shell| stores logs for each session. The default log location
+depends on your operating system.
+
+.. include:: /includes/steps/view-logs.rst
+
+.. tip::
+  
+   To change where MongoDB Shell writes logs, see
+   :ref:`mongosh-log-location`.
+
+.. include:: /includes/log-file-location.rst
diff --git a/source/mongoshrc.txt b/source/mongoshrc.txt
index 85180dac..b7e8e68b 100644
--- a/source/mongoshrc.txt
+++ b/source/mongoshrc.txt
@@ -4,6 +4,9 @@
 ``.mongoshrc`` Configuration File
 =================================
 
+.. meta::
+   :description: Customize `mongosh` startup behavior using the `.mongoshrc.js` file in your `HOME` directory, with options to prevent loading or rename legacy files.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
diff --git a/source/reference.txt b/source/reference.txt
index 552bbfd4..ab59ae0a 100644
--- a/source/reference.txt
+++ b/source/reference.txt
@@ -2,15 +2,18 @@
 Reference
 =========
 
+.. meta::
+   :description: Explore the reference materials for MongoDB Shell.
+
 .. default-domain:: mongodb
 
 .. toctree::
    :titlesonly:
 
-   /reference/compatibility
-   /reference/data-types
-   /reference/methods
-   /reference/ejson
-   /mongoshrc
-   /reference/options
-   /logs
+   Compatibility Changes </reference/compatibility>
+   Data Types </reference/data-types>
+   Methods </reference/methods>
+   EJSON </reference/ejson>
+   .mongoshrc Configuration File </mongoshrc>
+   Options </reference/options>
+   Logs </logs>
diff --git a/source/reference/access-mdb-shell-help.txt b/source/reference/access-mdb-shell-help.txt
index 4a0b49b6..d88e0775 100644
--- a/source/reference/access-mdb-shell-help.txt
+++ b/source/reference/access-mdb-shell-help.txt
@@ -5,6 +5,9 @@
 ``mongosh`` Help
 ================
 
+.. meta::
+   :description: Access help in `mongosh` using commands like `help`, `db.help()`, and `show collections` to explore available methods and database information.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
@@ -373,6 +376,17 @@ the following commands:
 - ``Symbol`` *(Deprecated)*
 - ``Timestamp``
 
+Log Method Help
+---------------
+
+``mongosh`` provides help for :ref:`log message <mdb-shell-logs>`
+methods. To see available log message methods, run the following
+command:
+
+.. code-block:: javascript
+
+   log.help()
+
 Command Helpers
 ---------------
 
@@ -396,15 +410,17 @@ certain database commands and obtain information on your deployment:
    * - ``help``
      - Display help.
 
+   * - ``history()``
+     - Display a list of previously executed commands. Available
+       starting in |mdb-shell| 2.4.0.
+
    * - ``show collections``
      - Display a list of all collections for current database.
 
    * - ``show dbs``
      - Display a list of all databases on the server.
 
-       .. note::
-
-          ``show dbs`` is synonymous with ``show databases``.
+       ``show dbs`` is synonymous with ``show databases``.
 
    * - ``show log <name>``
      - Displays the last segment of log in memory for the specified
diff --git a/source/reference/compatibility.txt b/source/reference/compatibility.txt
index 39436056..785b98e1 100644
--- a/source/reference/compatibility.txt
+++ b/source/reference/compatibility.txt
@@ -4,6 +4,9 @@
 Compatibility Changes with Legacy ``mongo`` Shell
 =================================================
 
+.. meta::
+   :description: Explore the differences between `mongosh` and the legacy `mongo` shell, including deprecated methods, read and write preference behaviors, and data type handling.
+
 .. contents:: On this page
    :local:
    :backlinks: none
@@ -202,6 +205,34 @@ in ``mongosh`` better align with the types used by the MongoDB Drivers.
    For more information on managing types, refer to the
    :manual:`schema validation overview </core/schema-validation>`.
 
+Undefined Values
+----------------
+
+The undefined BSON type is `deprecated <https://bsonspec.org/spec.html>`__. 
+If you try to insert a document with the undefined JS type in
+``mongosh``, your deployment replaces the undefined value in your 
+document with the BSON null value. There is no supported way of inserting undefined
+values into your database using ``mongosh``.
+
+For example, consider running the following code to insert a document in
+``mongosh``:
+
+.. code-block:: javascript
+
+   db.people.insertOne( { name : "Sally", age : undefined } )
+
+When you run this code in ``mongosh``, the shell inserts 
+the following document: 
+
+.. code-block:: javascript
+   "copyable: false
+
+   { name : "Sally", age : null }
+
+``mongosh`` represents any BSON undefined values stored using other tools, such as 
+the `Go Driver <https://www.mongodb.com/docs/drivers/go/current/>`__ or the 
+legacy ``mongo`` shell, as null.
+
 Object Quoting Behavior
 -----------------------
 
@@ -240,3 +271,51 @@ Limitations on Database Calls
 
 .. include:: /includes/fact-call-limitations.rst
 
+Command Exceptions
+------------------
+
+.. include:: /includes/legacy/legacy-command-exceptions.rst
+
+For details, see :ref:`run-commands`.
+
+Shell Configuration
+-------------------
+
+.. include:: /includes/legacy/legacy-shell-configuration.rst
+
+For details, see :ref:`mongoshrc-js`.
+
+Data Types
+----------
+
+.. include:: /includes/legacy/legacy-data-types.rst
+
+For details, see :ref:`mongo-shell-data-types`.
+
+Methods
+-------
+
+.. include:: /includes/legacy/legacy-load-method.rst
+
+For details, see :ref:`load() <mongosh-native-method-load>`.
+
+Retryable Writes
+----------------
+
+.. include:: /includes/legacy/legacy-retryable-writes.rst
+
+For details, see :option:`--retryWrites`.
+
+Legacy Output
+-------------
+
+.. include:: /includes/legacy/legacy-output.rst
+
+For details, see :ref:`mongosh-ejson-stringify-legacy-output`.
+
+Code Snippets
+-------------
+
+Working with code snippets is different for the legacy ``mongo`` shell.
+
+For details, see :ref:`snip-get-help`.
diff --git a/source/reference/configure-shell-settings-api.txt b/source/reference/configure-shell-settings-api.txt
index a702fc61..3c0b1758 100644
--- a/source/reference/configure-shell-settings-api.txt
+++ b/source/reference/configure-shell-settings-api.txt
@@ -4,6 +4,9 @@
 Configure Settings Using the API
 ================================
 
+.. meta::
+   :description: Configure and manage `mongosh` settings using the `config` API to persist changes across sessions, including setting properties like logging and telemetry.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
diff --git a/source/reference/configure-shell-settings-global.txt b/source/reference/configure-shell-settings-global.txt
index eae29cc6..4273ab59 100644
--- a/source/reference/configure-shell-settings-global.txt
+++ b/source/reference/configure-shell-settings-global.txt
@@ -4,6 +4,9 @@
 Configure Settings Using a Configuration File
 =============================================
 
+.. meta::
+   :description: Configure `mongosh` settings using a YAML configuration file to apply settings like `displayBatchSize` and `inspectDepth` at startup, with options to override using the config API.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
diff --git a/source/reference/configure-shell-settings.txt b/source/reference/configure-shell-settings.txt
index 08b64458..4ce9d9be 100644
--- a/source/reference/configure-shell-settings.txt
+++ b/source/reference/configure-shell-settings.txt
@@ -4,6 +4,9 @@
 Configure Settings
 ==================
 
+.. meta::
+   :description: Configure `mongosh` settings to customize shell behaviors, including logging, telemetry, and history management, using the config API or a global configuration file.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
@@ -33,5 +36,5 @@ To configure ``mongosh`` settings, you can either use:
 .. toctree::
    :titlesonly:
 
-   /reference/configure-shell-settings-api
-   /reference/configure-shell-settings-global
+   Use the API </reference/configure-shell-settings-api>
+   Use a Configuration File </reference/configure-shell-settings-global>
diff --git a/source/reference/customize-prompt.txt b/source/reference/customize-prompt.txt
index 026cf156..a7bfe197 100644
--- a/source/reference/customize-prompt.txt
+++ b/source/reference/customize-prompt.txt
@@ -4,6 +4,9 @@
 Customize the :binary:`~bin.mongosh` Prompt
 ===========================================
 
+.. meta::
+   :description: Customize the `mongosh` prompt to display dynamic session information, such as line numbers, database and hostname, or system uptime and document count.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
diff --git a/source/reference/data-types.txt b/source/reference/data-types.txt
index 34e39a64..fe92f384 100644
--- a/source/reference/data-types.txt
+++ b/source/reference/data-types.txt
@@ -1,7 +1,12 @@
+.. _mongo-shell-data-types:
+
 ==========
 Data Types
 ==========
 
+.. meta::
+   :description: Explore the data types supported by MongoDB's BSON, including Date, ObjectId, Double, Int32, Long, Decimal128, and Timestamp, with examples and type checking methods.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
@@ -12,12 +17,7 @@ Data Types
 
 .. _mongo-shell-data-type:
 
-MongoDB Server stores data using the
-:manual:`BSON </reference/bson-types>` format which supports some
-additional data types that are not available using the :term:`JSON`
-format. Compared to the legacy ``mongo`` shell, MongoDB Shell
-(``mongosh``) has type handling which is better aligned with the
-default types used by the MongoDB :ecosystem:`drivers </drivers>`. 
+.. include:: /includes/legacy/legacy-data-types.rst
 
 This document highlights changes in type usage between ``mongosh`` and
 the legacy ``mongo`` shell. See the 
@@ -63,17 +63,34 @@ Starting in  1.8.0, the ``ObjectId`` wrapper no longer accepts:
 
    :method:`ObjectId` 
 
+Double 
+------
+
+The :node-api:`Double() <Double.html>` constructor can be used to
+explicitly specify a double:
+
+.. code-block:: javascript
+
+      db.types.insertOne(
+         {
+            "_id": 2,
+            "value": Double(1),
+            "expectedType": "Double" 
+         }
+      )
+
+.. note:: 
+
+   If field's value is a number that can be converted to a 32-bit integer, 
+   ``mongosh`` will store it as ``Int32``. If not, ``mongosh`` defaults to 
+   storing the number as a ``Double``. To specify the value type, use the 
+   ``Double()`` or ``Int32()`` constructors. 
+
 .. _shell-type-int:
 
 Int32
 -----
 
-If a number can be converted to a 32-bit integer, ``mongosh`` will
-store it as ``Int32``. If not, ``mongosh`` defaults to storing the
-number as a ``Double``. Numerical values that are stored as ``Int32``
-in ``mongosh`` would have been stored by default as ``Double`` in the
-``mongo`` shell.
-
 The :node-api:`Int32() <Int32.html>` constructor can be used to
 explicitly specify 32-bit integers.
 
@@ -82,7 +99,7 @@ explicitly specify 32-bit integers.
       db.types.insertOne(
          {
              "_id": 1,
-             "value": Int32("1"),
+             "value": Int32(1),
              "expectedType": "Int32" 
          }
       )
@@ -106,7 +123,7 @@ explicitly specify a 64-bit integer.
       db.types.insertOne(
          {
             "_id": 3,
-            "value": Long("1"),
+            "value": Long(1),
             "expectedType": "Long" 
          }
       )
diff --git a/source/reference/editor-mode.txt b/source/reference/editor-mode.txt
index 58ac823d..eaba2e0e 100644
--- a/source/reference/editor-mode.txt
+++ b/source/reference/editor-mode.txt
@@ -5,6 +5,9 @@
 Use an Editor for Commands
 ==========================
 
+.. meta::
+   :description: Learn to use external or built-in editors in `mongosh` for multiline command editing, including setting up and using editors like `vi`, `nano`, or Visual Studio.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
diff --git a/source/reference/ejson.txt b/source/reference/ejson.txt
index c44a120c..a38dd5c3 100644
--- a/source/reference/ejson.txt
+++ b/source/reference/ejson.txt
@@ -57,7 +57,7 @@ Learn More
 .. toctree::
    :titlesonly:
 
-   /reference/ejson/deserialize
-   /reference/ejson/parse
-   /reference/ejson/serialize
-   /reference/ejson/stringify
+   deserialize() </reference/ejson/deserialize>
+   parse() </reference/ejson/parse>
+   serialize() </reference/ejson/serialize>
+   stringify() </reference/ejson/stringify>
diff --git a/source/reference/ejson/stringify.txt b/source/reference/ejson/stringify.txt
index 9b8c0b0a..e48747d9 100644
--- a/source/reference/ejson/stringify.txt
+++ b/source/reference/ejson/stringify.txt
@@ -613,12 +613,12 @@ The output is:
      }
    ]
 
+.. _mongosh-ejson-stringify-legacy-output:
+
 Legacy ``tojsononeline()``
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-``mongosh`` formats query output differently than the deprecated
-``mongo`` shell. You may have scripts which rely on the old format. To
-reformat ``mongosh`` output on a single line, use ``EJSON.stringify()``.
+.. include:: /includes/legacy/legacy-output.rst
 
 Run a sample query in ``mongosh`` and ``mongo`` to see the different
 formats.
diff --git a/source/reference/methods.txt b/source/reference/methods.txt
index 7df5377d..230b11d8 100644
--- a/source/reference/methods.txt
+++ b/source/reference/methods.txt
@@ -4,6 +4,9 @@
 Methods
 =======
 
+.. meta::
+   :description: Explore the available methods in the MongoDB Shell, including administration, bulk operations, collection management, and more, with detailed descriptions and usage.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
@@ -324,8 +327,8 @@ Collection Methods
 
    * - :method:`db.collection.getShardVersion()`
 
-     - Provides a wrapper for the database command :manual:`getShardVersion
-       </reference/command/getShardVersion/>`.
+     - Returns information regarding the state of data in a sharded 
+       cluster.
 
    * - :method:`db.collection.insertOne()`
 
@@ -497,8 +500,16 @@ Cursor Methods
        .. arrayAccess
 
    * - :method:`cursor.batchSize()`
-     - Controls the number of documents MongoDB will return to the
-       client in a single network message.
+     - Specifies the maximum number of documents MongoDB can return to the 
+       client within each batch returned in a query result. By default, the initial batch
+       size is the lesser of ``101`` documents or 16 mebibytes (MiB) worth of documents.
+       Subsequent batches have a maximum size of 16 MiB. This option can enforce a smaller
+       limit than 16 MiB, but not a larger one. When set, the
+       ``batchSize`` is the lesser of ``batchSize`` documents or 16 MiB worth of
+       documents.
+
+       A ``batchSize`` of ``0`` means that the cursor is established, but no documents 
+       are returned in the first batch. 
 
        The following example query returns results in batches of
        100: 
@@ -753,8 +764,8 @@ Database Methods
 
 .. _fle-methods-mongosh:
 
-Client-Side Field Level Encryption Methods
-------------------------------------------
+In-Use Encryption Methods
+-------------------------
 
 .. note:: Limitations
 
@@ -858,12 +869,6 @@ Native Methods
 
      - .. include:: /includes/examples/ex-build-info-command.rst
 
-   * - .. _mongosh-native-method-cd:
-
-       ``cd()``
-
-     - Changes the current working directory to the specified path.
-
    * - .. _mongosh-native-method-isInteractive:
 
        ``isInteractive()``
@@ -883,8 +888,7 @@ Native Methods
        script, respectively. The returned values are always absolute
        paths.
 
-       In the legacy shell, you cannot not access the script's file name
-       or directory using the ``load()`` method.
+       .. include:: /includes/legacy/legacy-load-method.rst
 
    * - .. _mongosh-native-method-print:  
 
@@ -902,12 +906,6 @@ Native Methods
           > print(x)
           example text
 
-   * - .. _mongosh-native-method-pwd:
-
-       ``pwd()``
-
-     - Returns the current working directory of the active shell session.
-
    * - .. _mongosh-native-method-quit:
 
        ``quit()``
@@ -1018,9 +1016,6 @@ Replication Methods
      - Returns the status of the secondary members of the replica set. 
      
        This is identical to the ``rs.printSecondaryReplicationInfo()`` method. 
-       This method's output is similar to the 
-       :method:`db.printSlaveReplicationInfo()` method. The :method:`db.printSlaveReplicationInfo()` method is deprecated in ``mongosh``. Use 
-       ``db.printSecondaryReplicationInfo()`` instead.
 
        The following is an example output from the 
        ``rs.printSecondaryReplicationInfo()`` method issued on a replica set with two secondary members:
@@ -1045,10 +1040,7 @@ Replication Methods
      - Returns the status of the secondary members of the replica set. 
      
        This is identical to the ``db.printSecondaryReplicationInfo()`` 
-       method. This method's output is similar to the 
-       :method:`rs.printSlaveReplicationInfo()` method in the legacy 
-       |mongo| shell. The :method:`rs.printSlaveReplicationInfo()` method is deprecated in ``mongosh``. Use 
-       ``rs.printSecondaryReplicationInfo()`` instead.
+       method. 
 
        The following is an example output from the 
        ``rs.printSecondaryReplicationInfo()`` method issued on a replica set with two secondary members:
@@ -1334,11 +1326,29 @@ Sharding Methods
      - Returns a boolean to report if the :term:`balancer` is currently
        enabled.
 
+   * - :method:`sh.getShardedDataDistribution()`
+
+     - Returns data distribution information for sharded collections.
+       ``sh.getShardedDataDistribution()`` is a shell helper method for
+       the :pipeline:`$shardedDataDistribution` aggregation pipeline
+       stage.
+
    * - :method:`sh.isBalancerRunning()`
 
      - Returns a boolean to report if the :term:`balancer` process is
        currently migrating chunks.
 
+   * - :upcoming:`sh.isConfigShardEnabled()
+       </reference/method/sh.isConfigShardEnabled>`
+     - Returns whether a cluster has a :ref:`config shard <config-shard-concept>`.
+       If it does, ``sh.isConfigShardEnabled()`` also returns
+       host and tag information.
+
+   * - :upcoming:`sh.listShards()
+       </reference/method/sh.listShards>`
+     - Returns an array of documents describing the
+       shards in a sharded cluster. 
+
    * - :method:`sh.moveChunk()`
 
      - Migrates a :term:`chunk` in a :term:`sharded cluster`.
diff --git a/source/reference/options.txt b/source/reference/options.txt
index d28cef27..255377dc 100644
--- a/source/reference/options.txt
+++ b/source/reference/options.txt
@@ -2,6 +2,9 @@
 Options
 =======
 
+.. meta::
+   :description: Explore various options to control MongoDB Shell, including general, stable API, connection, authentication, session, and client-side field level encryption options.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
@@ -37,14 +40,33 @@ General Options
    statements, ``mongosh`` only prints the results of the last
    ``--eval``.
 
+   You can use the ``--json`` flag with ``--eval`` to return
+   ``mongosh`` results in :manual:`Extended JSON 
+   </reference/mongodb-extended-json/>` format. ``mongosh``
+   supports both ``--json=canonical`` and ``--json=relaxed`` modes. If
+   you omit the mode, ``mongosh`` defaults to the ``canonical``
+   mode. The ``--json`` flag is mutually exclusive with ``--shell``.
+
    **Example: Format Output**
 
    .. include:: /includes/examples/ex-eval-output.rst
 
-   **Example: Multiple ``--eval`` Arguments**
+   **Example: Multiple --eval Arguments**
 
    .. include:: /includes/examples/ex-eval-multi.rst
 
+   **Example: --json Option**
+
+   .. include:: /includes/examples/ex-eval-json.rst
+
+.. option:: --file, -f <javascript>
+
+   Runs a script from the command line without entering the
+   |mdb-shell| console.
+
+   For additional details and an example, see
+   :ref:`mdb-shell-write-scripts-command-line`.
+
 .. option:: --help, -h
 
    Returns information on the options and use of the |mdb-shell|.
@@ -69,7 +91,8 @@ General Options
    command and specify a JavaScript file as an argument, or use
    :option:`--eval <--eval>` to specify JavaScript on the command line,
    the :option:`--shell <--shell>` option provides the user with a shell
-   prompt after the file finishes executing.
+   prompt after the file finishes executing. The ``--shell`` flag is
+   mutually exclusive with ``--json``.  
 
 .. option:: --verbose
 
@@ -129,7 +152,7 @@ Connection Options
         <replSetName>/<hostname1><:port>,<hostname2><:port>,<...>
 
    For TLS/SSL connections (:option:`--tls <--tls>`),
-     The |mdb-shell| shell verifies that the hostname
+     The |mdb-shell| verifies that the hostname
      (specified in the :option:`--host <--host>` option or the
      connection string) matches the ``SAN`` (or, if ``SAN`` is not
      present, the ``CN``) in the certificate presented by the
@@ -154,7 +177,7 @@ Connection Options
 
          .. code-block:: none
 
-            mongodb+srv://server.example.com/?connectionTimeout=3000ms
+            mongodb+srv://server.example.com/?connectionTimeoutMS=3000
 
 .. option:: --port <port>
 
@@ -432,15 +455,28 @@ Authentication Options
 
         - External authentication using LDAP. You can also use ``PLAIN``
           for authenticating in-database users. ``PLAIN`` transmits
-          passwords in plain text. This mechanism is available only in
-          `MongoDB Enterprise
-          <http://www.mongodb.com/products/mongodb-enterprise-advanced?jmp=docs>`_.
+          passwords in plain text. This mechanism is
+          available in `MongoDB Enterprise
+          <http://www.mongodb.com/products/mongodb-enterprise-advanced?jmp=docs>`_
+          and `MongoDB Atlas
+          <https://www.mongodb.com/atlas/database?tck=docs_server>`_.
 
       * - :manual:`MONGODB-OIDC </core/security-oidc/>` (OpenID Connect) 
 
         - External authentication using OpenID Connect. This mechanism is
-          available only in `MongoDB Enterprise
-          <http://www.mongodb.com/products/mongodb-enterprise-advanced?jmp=docs>`_.
+          available in `MongoDB Enterprise
+          <http://www.mongodb.com/products/mongodb-enterprise-advanced?jmp=docs>`_
+          and `MongoDB Atlas
+          <https://www.mongodb.com/atlas/database?tck=docs_server>`_.
+
+      * - ``MONGODB-AWS`` (AWS IAM) 
+
+        - External authentication using Amazon Web Services Identity and
+          Access Management (AWS IAM) credentials. This mechanism is
+          available in `MongoDB Enterprise
+          <http://www.mongodb.com/products/mongodb-enterprise-advanced?jmp=docs>`_
+          and `MongoDB Atlas
+          <https://www.mongodb.com/atlas/database?tck=docs_server>`_.
 
 .. option:: --gssapiServiceName
 
@@ -499,6 +535,13 @@ Authentication Options
 
       mongosh 'mongodb://localhost/' --authenticationMechanism MONGODB-OIDC --oidcFlows=auth-code,device-auth
 
+.. option:: --oidcIdTokenAsAccessToken 
+   
+   Specifies whether ``mongosh`` uses the ID token received from the identity
+   provider instead of the access token. Use this option with identity providers 
+   that you can't configure to provide :abbr:`JWT (JSON Web Token)` access 
+   tokens.
+
 .. option:: --oidcRedirectUri
 
    Specifies a URI where the identity provider redirects you after authentication.
@@ -507,8 +550,9 @@ Authentication Options
 
 .. option:: --oidcTrustedEndpoint
 
-   Specifies a connection to a trusted endpoint that is not Atlas or localhost. 
-   Only use this option when connecting to servers that you trust.
+   Specifies a connection to a trusted endpoint that is not Atlas or localhost to
+   ensure that access tokens are sent to trusted servers. Only use this option when
+   connecting to servers that you trust.
 
 .. option:: --browser
 
@@ -542,10 +586,9 @@ Session Options
 
 .. option:: --retryWrites
 
-   Enables :ref:`retryable-writes`. Retryable writes are enabled by
-   default in :binary:`mongosh`. Retryable writes are disabled by
-   default in the legacy :binary:`mongo` shell. To disable retryable
-   writes, use :option:`--retryWrites=false <mongosh --retryWrites>`.
+   Enables :ref:`retryable-writes`.
+   
+   .. include:: /includes/legacy/legacy-retryable-writes.rst
 
    For more information on sessions, see :ref:`sessions`.
 
@@ -628,7 +671,7 @@ Client-Side Field Level Encryption Options
    The full namespace (``<database>.<collection>``) of the collection 
    used as a key vault for :ref:`manual-csfle-feature`. 
    :option:`--keyVaultNamespace` is required for enabling client-side 
-   field level encryption. for the :program:`mongosh` shell session. 
+   field level encryption for the :program:`mongosh` shell session. 
    :program:`mongosh` creates the specified namespace if it does not
    exist.
 
diff --git a/source/run-agg-pipelines.txt b/source/run-agg-pipelines.txt
index 698c828b..c5a21833 100644
--- a/source/run-agg-pipelines.txt
+++ b/source/run-agg-pipelines.txt
@@ -4,6 +4,9 @@
 Run Aggregation Pipelines
 =========================
 
+.. meta::
+   :description: Run aggregation pipelines in MongoDB Shell to transform documents into aggregated results using various stages like grouping, filtering, and sorting.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
diff --git a/source/run-commands.txt b/source/run-commands.txt
index 0004c938..7b787496 100644
--- a/source/run-commands.txt
+++ b/source/run-commands.txt
@@ -104,19 +104,14 @@ it issues a warning.
 Pressing ``Ctrl + C`` once will not exit :binary:`~bin.mongosh`, press
 ``Ctrl + C`` twice to  exit :binary:`~bin.mongosh`.
 
+You can also terminate a script from within the script code by calling the 
+``exit(<code>)`` command. For more information, refer to 
+:ref:`Terminate a Script on Error <mongosh-terminate-script>`.
+
 Command Exceptions
 ------------------
 
-In scenarios where the output of a command includes ``{ ok: 0 }``,
-``mongosh`` throws an exception and does not return the raw output from
-the server.
-
-.. note::
-
-   In the legacy ``mongo`` shell, when a command's output included ``{
-   ok: 0 }``, the behavior differs between commands. ``mongosh``
-   provides consistent behavior by always throwing an exception in these
-   scenarios.
+.. include:: /includes/legacy/legacy-command-exceptions.rst
 
 Clear the ``mongosh`` Console
 -----------------------------
diff --git a/source/snippets.txt b/source/snippets.txt
index f048a03a..84eec835 100644
--- a/source/snippets.txt
+++ b/source/snippets.txt
@@ -4,6 +4,9 @@
 Snippets
 ========
 
+.. meta::
+   :description: Explore how to use, create, and manage snippets in `mongosh` for data manipulation and administrative tasks.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
@@ -75,8 +78,8 @@ management, and configure a registry to share them.
 .. toctree::
    :titlesonly:
 
-   /snippets/working-with-snippets
-   /snippets/packages
-   /snippets/registries-config
-   /snippets/troubleshooting
-   /snippets/reference
+   Use in the Console </snippets/working-with-snippets>
+   Create & Share </snippets/packages>
+   Registries </snippets/registries-config>
+   Troubleshoot </snippets/troubleshooting>
+   Reference </snippets/reference>
diff --git a/source/snippets/commands.txt b/source/snippets/commands.txt
index 6839f2e3..d2eca9fe 100644
--- a/source/snippets/commands.txt
+++ b/source/snippets/commands.txt
@@ -4,6 +4,9 @@
 Snippet Commands
 ================
 
+.. meta::
+   :description: Explore available commands for managing snippets, including installing, listing, and updating snippets in the MongoDB Shell.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
diff --git a/source/snippets/configuration.txt b/source/snippets/configuration.txt
index 16d5f4be..bbb115e5 100644
--- a/source/snippets/configuration.txt
+++ b/source/snippets/configuration.txt
@@ -4,6 +4,9 @@
 Configuration Options 
 =====================
 
+.. meta::
+   :description: Configure `mongosh` snippet settings, including autoload and registry URLs, using the `config.set` method.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
diff --git a/source/snippets/error-handlers.txt b/source/snippets/error-handlers.txt
index 3254b358..835f6771 100644
--- a/source/snippets/error-handlers.txt
+++ b/source/snippets/error-handlers.txt
@@ -4,6 +4,9 @@
 Error Handlers
 ==============
 
+.. meta::
+   :description: Explore how to use error handlers with regular expressions to catch runtime errors and display custom messages in MongoDB Shell.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
diff --git a/source/snippets/packages.txt b/source/snippets/packages.txt
index 1d77ef0f..e2803736 100644
--- a/source/snippets/packages.txt
+++ b/source/snippets/packages.txt
@@ -4,6 +4,9 @@
 Create and Share Snippets
 =========================
 
+.. meta::
+   :description: Learn how to create, package, and share MongoDB shell snippets, including preparing files, publishing to a registry, and contributing to the community.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
diff --git a/source/snippets/reference.txt b/source/snippets/reference.txt
index 8275ae01..cc588a34 100644
--- a/source/snippets/reference.txt
+++ b/source/snippets/reference.txt
@@ -4,6 +4,9 @@
 Snippets Reference
 ==================
 
+.. meta::
+   :description: Explore available commands for working with snippets in `mongosh`, including package management and error handling options.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
@@ -12,10 +15,25 @@ Snippets Reference
    :depth: 1
    :class: singlecol
 
+:ref:`snip-commands`
+   An overview of the commands that are available to work with
+   :ref:`snippets <snip-overview>`.
+
+:ref:`snip-configure`
+   Options to control the interaction between ``mongosh`` and the
+   package manager that tracks individual snippet packages.
+
+:ref:`snip-errors`
+   Error handlers to specify regular expressions to catch runtime errors
+   and display custom error messages.
+
+:ref:`snip-manual-reg-index`
+   Steps to manually create a registry index file.
+
 .. toctree::
    :titlesonly:
 
-   /snippets/commands
-   /snippets/configuration
-   /snippets/error-handlers
-   /snippets/registry-index
+   Commands </snippets/commands>
+   Configuration </snippets/configuration>
+   Error Handlers </snippets/error-handlers>
+   Create Registry Index File </snippets/registry-index>
diff --git a/source/snippets/registries-config.txt b/source/snippets/registries-config.txt
index e35e261e..a51efcca 100644
--- a/source/snippets/registries-config.txt
+++ b/source/snippets/registries-config.txt
@@ -4,6 +4,9 @@
 Registries and Registry Configuration 
 =====================================
 
+.. meta::
+   :description: Configure your system to use different registries for MongoDB snippets, including community, private, and multiple registries.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
diff --git a/source/snippets/registry-index.txt b/source/snippets/registry-index.txt
index 0ab408d0..5546479a 100644
--- a/source/snippets/registry-index.txt
+++ b/source/snippets/registry-index.txt
@@ -5,6 +5,9 @@
 Create a Registry Index File Manually 
 =====================================
 
+.. meta::
+   :description: Learn how to manually create a registry index file for MongoDB Shell snippets using TypeScript.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
diff --git a/source/snippets/troubleshooting.txt b/source/snippets/troubleshooting.txt
index d07dec0a..296757e2 100644
--- a/source/snippets/troubleshooting.txt
+++ b/source/snippets/troubleshooting.txt
@@ -4,6 +4,9 @@
 Troubleshooting
 ===============
 
+.. meta::
+   :description: Troubleshoot common issues with MongoDB Shell snippets, including viewing npm logs and resolving module errors.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
diff --git a/source/snippets/working-with-snippets.txt b/source/snippets/working-with-snippets.txt
index d14566f8..69243339 100644
--- a/source/snippets/working-with-snippets.txt
+++ b/source/snippets/working-with-snippets.txt
@@ -4,6 +4,9 @@
 Use Snippets in the Console
 ===========================
 
+.. meta::
+   :description: Learn how to install, run, and manage snippets in the `mongosh` console, including searching for available snippets and getting help for specific ones.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
@@ -208,9 +211,6 @@ The output lists each repository.
 .. code-block:: javascript
    :copyable: false
 
-   Snippet repository URL:      https://github.com/YOUR_COMPANY/YOUR_REPO_PATH/index.bson.br
-     -->  Homepage:             https://davemungo.github.io/mongosh-snippets/
-
    Snippet repository URL:      https://compass.mongodb.com/mongosh/snippets-index.bson.br
      -->  Homepage:             https://github.com/mongodb-labs/mongosh-snippets
 
diff --git a/source/telemetry.txt b/source/telemetry.txt
index c9f27455..f6ad95b8 100644
--- a/source/telemetry.txt
+++ b/source/telemetry.txt
@@ -4,6 +4,9 @@
 Configure Telemetry Options
 ===========================
 
+.. meta::
+   :description: Configure telemetry options in `mongosh` to manage anonymous usage data collection, with options to enable or disable it at any time.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
diff --git a/source/write-scripts.txt b/source/write-scripts.txt
index e536b4a1..dfdd8b7a 100644
--- a/source/write-scripts.txt
+++ b/source/write-scripts.txt
@@ -127,6 +127,8 @@ The following example creates and executes a script that:
    script is not in the current working directory or the full specified
    path, the |mdb-shell| cannot access the file.
 
+.. _mdb-shell-write-scripts-command-line:
+
 Execute a Script From the Command Line
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -271,6 +273,24 @@ You can also specify the shortened form of the options:
    space it will not be saved in your command history. This minimizes
    exposure if you enter passwords on the command line.
 
+
+.. _mongosh-terminate-script:
+
+Terminate a Script on Error
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+It is often useful to terminate a running script if an exception is thrown, or 
+in the case of unexpected results. Exiting at a specific point in the script 
+prevents the execution of unnecessary code and potentially unexpected results.
+
+To terminate a script, you can call the ``exit(<code>)`` method, where the 
+``<code>`` is any user-specified value. 
+
+As a best practice, wrap code in a ``try - catch``, calling the 
+``exit`` method in the ``catch`` block. Likewise, to check the results of a query or any command, 
+you can add an ``if - else`` statement and call the ``exit`` method if the 
+results are not what is expected.
+
 .. _mongosh-write-scripts-config-file:
 
 Execute Code From a Configuration File
@@ -417,7 +437,9 @@ The following command connects to a MongoDB instance that is:
    this is the only way I could get it to work.
    https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/#opening-new-connections
 
-.. include:: /includes/admonitions/note-redact-credentials-command-history.rst
+.. note::
+   
+   .. include:: /includes/admonitions/note-redact-credentials-command-history.rst
 
 Use ``connect()`` to Connect to a MongoDB Instance
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -520,8 +542,7 @@ you do not have to edit the script to run ``portableGetUserCount.js``.
 .. toctree::
    :titlesonly:
 
-   /write-scripts/require-external-modules
-   /write-scripts/require-load-differences
-   /write-scripts/scoping
-   /write-scripts/considerations
-
+   Include Files & Modules </write-scripts/require-external-modules>
+   require() versus load() </write-scripts/require-load-differences>
+   Code Scoping </write-scripts/scoping>
+   Considerations </write-scripts/considerations>
diff --git a/source/write-scripts/considerations.txt b/source/write-scripts/considerations.txt
index 74705e29..f7ea8ee8 100644
--- a/source/write-scripts/considerations.txt
+++ b/source/write-scripts/considerations.txt
@@ -5,6 +5,9 @@
 Script Considerations
 =====================
 
+.. meta::
+   :description: Consider using async functions, async generator functions, or `.map()` for database query results in scripts, as certain contexts like class constructors and non-async generators are unsupported.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
diff --git a/source/write-scripts/require-external-modules.txt b/source/write-scripts/require-external-modules.txt
index cf3fcd08..29a6f375 100644
--- a/source/write-scripts/require-external-modules.txt
+++ b/source/write-scripts/require-external-modules.txt
@@ -4,6 +4,9 @@
 Include External Files and Modules in Scripts
 =============================================
 
+.. meta::
+   :description: Learn how to include external files and modules in `mongosh` scripts using the `require()` function for local files, built-in Node.js modules, and npm modules.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
@@ -124,7 +127,8 @@ install the modules either:
 
    .. code-block:: javascript
 
-      const localRequire = require('module').createRequire(__filename);)
+      const localRequire = require('module').createRequire(__filename);
+
 
    For an example, see
    `index.js <https://github.com/mongodb-labs/mongosh-snippets/blob/main/snippets/resumetoken/index.js>`__
diff --git a/source/write-scripts/require-load-differences.txt b/source/write-scripts/require-load-differences.txt
index 22e2b487..0bef81de 100644
--- a/source/write-scripts/require-load-differences.txt
+++ b/source/write-scripts/require-load-differences.txt
@@ -4,6 +4,9 @@
 Differences Between ``require()`` and ``load()``
 ================================================
 
+.. meta::
+   :description: Understand the differences between `require()` and `load()` in mongosh scripts, including their availability, file path handling, and packaging considerations.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
@@ -65,13 +68,6 @@ The type of script determines how you specify file paths with
   <https://nodejs.org/api/modules.html>`__, starting from the file
   where ``require()`` was called.
 
-.. tip::
-
-   To return the current working directory of the shell, run the
-   :ref:`pwd() <mongosh-native-method-pwd>` method from your script.
-
-   To change the shell's working directory, use the :ref:`cd() 
-   <mongosh-native-method-cd>` method in your script.
 
 Load External Code in a mongosh Script
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/source/write-scripts/scoping.txt b/source/write-scripts/scoping.txt
index 97ce1cdb..42dcaa6d 100644
--- a/source/write-scripts/scoping.txt
+++ b/source/write-scripts/scoping.txt
@@ -4,6 +4,9 @@
 Code Scoping
 ============
 
+.. meta::
+   :description: Learn how to manage code scope in `mongosh` to prevent global scope collisions by wrapping functions and variables within an anonymous function.
+
 .. default-domain:: mongodb
 
 .. contents:: On this page
